SSL 客户机证书认证允许客户机和服务器向对方提供证书以相互验证。 通常会在由于安全问题而需要额外的认证级别时使用该认证方法。
关于此任务
以下设置信息假定您正在使用 RACF® 密钥库来存储用于 SSL 客户机证书认证的证书。
过程
- 使用签名证书创建个人证书,并将个人证书与 RACF 用户标识相关联。
然后,将个人证书导出到 CER 格式的数据集,然后将二进制格式的 FTP 导出到工作站。 将个人证书作为个人证书导入到 Web 浏览器。 将证书导入到 Web 浏览器时,它可以提供 SSL 客户机证书并连接到 Liberty 服务器中的 HTTPS 端口。 使用以下 RACF 命令,其中
<clientuserid> 是 RACF 用户标识,
<hostname> 是客户端计算机的主机名。
RACDCERT ID(<clientuserid>) GENCERT
SUBJECTSDN(CN('<hostname>')
O('IBM')
OU('CICS'))
SIZE(2048)
SIGNWITH (CERTAUTH LABEL('CICS-Sample-Certification'))
WITHLABEL('<clientuserid>-certificate')
如先前在此步骤中所做的那样,导出个人证书。
RACDCERT ID(<clientuserid>)
EXPORT(LABEL('<clientuserid>-certificate'))
DSN('USERID.CERT.CLICERT')
FORMAT(PKCS12DER)
PASSWORD('password')
更新
server.xml SSL 元素以支持 SSL 客户机证书认证:
<ssl id="defaultSSLConfig" keyStoreRef="racfKeyStore"
sslProtocol="SSL_TLS"
serverKeyAlias="<userid>-Liberty-Server"
clientAuthenticationSupported="true"/>
此外,如果要确保所有客户机都必须提供有效的 SSL 客户机证书,请将
clientAuthentication 属性添加到 SSL 元素,如下所示:
<ssl id="defaultSSLConfig" keyStoreRef="racfKeyStore"
sslProtocol="SSL_TLS"
serverKeyAlias="<userid>-Liberty-Server"
clientAuthenticationSupported="true"
clientAuthentication="true"/>
- 您可以使用步骤 2 中客户机用户标识的身份在 CICS 中认证 Web 请求。 然后,在 web.xml中使用 CLIENT-CERT 的 login-config 元素部署 Web 应用程序。 可以在要部署的 Web 应用程序的源文件中找到 web.xml 文件。
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config
相反,如果要在未配置 SSL 客户机证书认证的情况下允许故障转移到 HTTP 基本认证,请将 webApp安全元素添加到
server.xml。
<webAppSecurity allowFailOverToBasicAuth="true" />
- 最后,设置 CICS 事务安全性,以根据已认证的客户机用户标识授予对 CICS 事务的访问权。