![[z/OS]](ngzos.gif)
为 z/OS 上的 REST API 和 IBM MQ Console 配置 TLS
在 z/OS®上,您可以将 mqweb 服务器配置为使用 RACF® 密钥环来存储证书,以使用 TLS 进行安全连接和客户机证书认证。
开始之前
关于本任务
缺省 mqweb 服务器配置将 Java 密钥库用于服务器和可信证书。 在 z/OS上,可以将 mqweb 服务器配置为使用 RACF 密钥环,而不是 Java 密钥库。 还可以将服务器配置为允许用户使用客户机证书进行认证。
请参阅 Liberty: 密钥库 ,以获取有关在 Liberty中使用 RACF 密钥环的信息。
遵循以下过程来配置 mqweb 服务器以使用 RACF 密钥环,并 (可选) 配置客户机证书认证。 此过程描述了创建和使用使用您自己的认证中心 (CA) 证书签署的证书所需的步骤。 对于生产,您可能更愿意使用从外部认证中心获取的证书。
过程
- 创建认证中心 (CA) 证书,该证书将用于对服务器证书进行签名。 例如,输入以下 RACF 命令:
RACDCERT GENCERT - CERTAUTH - SUBJECTSDN(CN('mqweb Certification Authority') - O('IBM') - OU('MQ')) - SIZE(2048) - WITHLABEL('mqwebCertauth') - 通过输入以下命令,创建使用步骤 1 中创建的 CA 证书签名的服务器证书:
其中,mqwebUserId是 mqweb 服务器启动任务的用户 ID,hostname是 mqweb 服务器的主机名。RACDCERT ID(mqwebUserId) GENCERT - SUBJECTSDN(CN('hostname') - O('IBM') - OU('MQ')) - SIZE(2048) - SIGNWITH (CERTAUTH LABEL('mqwebCertauth')) - WITHLABEL('mqwebServerCert') - 通过输入以下命令将 CA 证书和服务器证书连接到 SAF 密钥环:
其中,mqwebUserId是 mqweb 服务器启动任务的用户 ID,keyring是要使用的钥匙圈名称。RACDCERT ID(mqwebUserId) CONNECT(RING(keyring) LABEL('mqwebCertauth') CERTAUTH) RACDCERT ID(mqwebUserId) CONNECT(RING(keyring) LABEL('mqwebServerCert')) - 通过输入以下命令将 CA 证书导出到 CER 文件:
RACDCERT CERTAUTH EXPORT(LABEL('mqwebCertauth')) - DSN('hlq.CERT.MQWEBCA') - FORMAT(CERTDER) - PASSWORD('password') - 以二进制方式将导出的 CA 证书通过 FTP 传输到工作站,并将其作为认证中心证书导入到浏览器中。
- 可选: 如果要配置客户机证书认证,请创建并导出客户机证书。
- 创建认证中心 (CA) 证书,该证书将用于签署客户机证书。 例如,输入以下 RACF 命令:
RACDCERT GENCERT - CERTAUTH - SUBJECTSDN(CN('mqweb User CA') - O('IBM') - OU('MQ')) - SIZE(2048) - WITHLABEL('mqwebUserCertauth') - 通过输入以下命令将 CA 证书连接到 SAF 密钥环:
其中,mqwebUserId是 mqweb 服务器启动任务的用户 ID,keyring是要使用的钥匙圈名称。RACDCERT ID(mqwebUserId) CONNECT(RING(keyring) LABEL('mqwebUserCertauth') CERTAUTH) - 创建客户机证书,使用 CA 证书进行签名。 例如,输入以下命令:
其中clientUserId是用户名。RACDCERT ID(clientUserId) GENCERT - SUBJECTSDN(CN('clientUserId') - O('IBM') - OU('MQ')) - SIZE(2048) - SIGNWITH (CERTAUTH LABEL('mqwebUserCertauth')) - WITHLABEL('userCertLabel')用于将证书映射到主体的方法取决于配置的用户注册表类型:- 如果您正在使用基本注册表,那么会将证书中的 "公共名称" 字段与注册表中的用户进行匹配。
- 如果您正在使用 SAF 注册表,并且证书位于 RACF 数据库中,那么将使用在创建证书时使用 ID 参数指定的证书所有者。
- 如果您正在使用 LDAP 注册表,那么证书中的完整专有名称将与 LDAP 注册表相匹配。
- 通过输入以下命令将客户机证书导出到 PKCS #12 文件:
RACDCERT ID(mqwebUserId) EXPORT(LABEL('userCertLabel')) - PASSWORD('password') DSN('hlq.USER.CERT') - 以二进制方式将导出的证书通过 FTP 传输到工作站。 要将客户机证书与 IBM® MQ Console配合使用,请将其作为个人证书导入到用于访问 IBM MQ Console 的 Web 浏览器中。
- 创建认证中心 (CA) 证书,该证书将用于签署客户机证书。 例如,输入以下 RACF 命令:
- 编辑文件 WLP_user_directory/servers/mqweb/mqwebuser.xml,其中 WLP_user_directory 是运行 crtmqweb 脚本以创建 mqweb 服务器定义时指定的目录。进行以下更改以将 mqweb 服务器配置为使用 RACF 密钥环:
- 除去或注释掉以下行:
<sslDefault sslRef="mqDefaultSSLConfig"/> - 添加以下语句:
<keyStore id="defaultKeyStore" filebased="false" location="safkeyring://mqwebUserId/keyring" password="password" readOnly="true" type="JCERACFKS" /> <ssl id="thisSSLConfig" keyStoreRef="defaultKeyStore" sslProtocol="TLSv1.2" serverKeyAlias="mqwebServerCert" clientAuthenticationSupported="true" /> <sslDefault sslRef="thisSSLConfig"/>其中:- mqwebUserId是 mqweb 服务器启动任务的用户 ID。
- keyring 是 RACF 密钥环的名称。
- mqwebServerCert是 mqweb 服务器证书的标签。
注: 将忽略 keyStore password 的值。
- 除去或注释掉以下行:
- 通过停止并重新启动 mqweb 服务器启动式任务来重新启动 mqweb 服务器。
- 可选: 使用客户机证书进行认证:
- 要将客户端证书用于 IBM MQ Console ,请在安装了客户端证书的网络浏览器中输入 IBM MQ Console URL。
- 要将客户机证书与 REST API 配合使用,请为客户机证书提供每个 REST 请求。
注:- 如果您仅使用证书向 IBM MQ Console进行认证,那么浏览器可能会显示供您选择的证书列表。
- 如果要使用其他证书,那么可能需要关闭并重新启动浏览器。
- 如果您正在使用不在 RACF 数据库中的客户机证书,那么可以使用 RACF 证书名称过滤将证书属性映射到用户标识。 例如:
将具有包含RACDCERT ID(DEPT3USR) MAP SDNFILTER(OU=DEPT1.C=US)OU=DEPT1和C=US的主题专有名称的证书映射到用户标识DEPT3USR。 - 如果证书主题CN中的主机名和主题备用名称(SAN)与 IBM MQ Console 的 URL 的主机名不匹配,浏览器可能会报告连接不安全。 虽然可以安全继续,但您应考虑创建一个新证书,指定它将用于的主机名的完整列表,然后用新证书替换 "RACF钥匙圈上的现有证书。
结果
您已为 IBM MQ Console 和 REST API设置 TLS 接口。