在 Liberty JVM 服务器中设置 SSL (TLS) 客户机证书认证

SSL 客户机证书认证允许客户机和服务器向对方提供证书以相互验证。 通常会在由于安全问题而需要额外的认证级别时使用该认证方法。

开始之前

必须完成任务 使用 RACF为 Liberty JVM 服务器配置 SSL (TLS)。 如果尚未设置 CICS® Liberty 安全性,那么必须先完成 配置 Liberty JVM 服务器的安全性 ,然后再继续。

关于此任务

以下设置信息假定您正在使用 RACF® 密钥库来存储用于 SSL 客户机证书认证的证书。

过程

  1. 使用签名证书创建个人证书,并将个人证书与 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. 您可以使用步骤 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" /> 
  3. 最后,设置 CICS 事务安全性,以根据已认证的客户机用户标识授予对 CICS 事务的访问权。