使用 RACF 为 Liberty JVM 服务器配置 SSL (TLS)

您可以配置 Liberty JVM 服务器以使用 SSL 进行数据加密,并且可以选择使用客户机证书向服务器认证。 证书可以存储在 Java™ 密钥库或 SAF 密钥环 (例如 RACF®) 中。

关于此任务

在 Liberty JVM 服务器中启用 SSL 需要添加 ssl-1.0 Liberty 功能部件,密钥库和 HTTPS 端口。 手动配置 server.xml 。 您可以编辑 server.xml 文件以添加必需的元素和值。 如果要使用 RACF 密钥环,那么必须遵循手动过程。

请务必了解,对 Liberty JVM 服务器的任何 Web 请求都使用对 TCP/IP 套接字和 SSL 处理的 JVM 支持,而不是 CICS® 套接字域。

过程

要手动配置 SSL ,需要创建签名证书。 使用此签名证书来创建服务器证书。 然后,将签名证书导出到用于认证服务器证书的客户机 Web 浏览器。
  1. 创建认证中心 (CA) 证书 (签名证书)。 使用 RACF 命令的示例如下:
    RACDCERT GENCERT 
      CERTAUTH 
      SUBJECTSDN(CN('CICS Sample Certification Authority')
       O('IBM')  
       OU('CICS'))
       SIZE(2048)
      WITHLABEL('CICS-Sample-Certification')

    证书的 SIZE 应该至少为 2048 位。 有关更多信息,请参阅 RACF RACDCERT GENCERT (生成证书) 命令

  2. 创建使用步骤 2 中的签名证书的服务器证书,其中 <userid> 是 CICS 区域用户标识。 hostname 是 Liberty 服务器 HTTPS 端口配置为使用的服务器的主机名。
    RACDCERT ID(<userid>) GENCERT                                                                 
      SUBJECTSDN(CN('<hostname>') 
       O('IBM')  
       OU('CICS'))
       SIZE(2048)
       SIGNWITH (CERTAUTH LABEL('CICS-Sample-Certification'))
      WITHLABEL('<userid>-Liberty-Server') 

    证书的 SIZE 应该至少为 2048 位。 有关更多信息,请参阅 RACF RACDCERT GENCERT (生成证书) 命令

  3. 将签名证书和服务器证书连接到 RACF 密钥环。
    您可以将 RACF 与以下命令配合使用,并将 <keyring> 的值替换为要使用的密钥环的名称。 将 <userid> 的值替换为 CICS 区域用户标识。
    RACDCERT ID(<userid>) CONNECT(RING(<keyring>)            
           LABEL('CICS-Sample-Certification')                  
           CERTAUTH)
    
    RACDCERT ID(<userid>) CONNECT(RING(<keyring>)            
           LABEL('<userid>-Liberty-Server'))  
    将签名证书导出到 CER 文件:
    RACDCERT CERTAUTH EXPORT(LABEL('CICS-Sample-Certification'))               
           DSN('<userid>.CERT.LIBCERT')
           FORMAT(CERTDER)  
           PASSWORD('password') 
    以二进制方式将导出的证书通过 FTP 传输到工作站,并将其作为认证中心证书导入到浏览器中。
  4. 编辑 server.xml 文件并添加 SSL 功能部件和密钥库。 设置 HTTPS 端口 (以下示例中的值为 9443) ,然后重新启动 CICS 区域。 必须以 URL 格式 safkeyring://<userid>/<keyring>指定 SAF 密钥环。 必须将 <userid> 值设置为 CICS 区域用户标识,并且必须将 <keyring> 值设置为密钥环的名称。 密码字段不用于访问 SAF 密钥环,必须设置为 password
    <featureManager>
      ... 
           <feature>ssl-1.0</feature>
    </featureManager>
    ...
    <httpEndpoint host="*" httpPort="9080" httpsPort="9443" 
        id="defaultHttpEndpoint"/>
    ...
    . 
    <keyStore filebased="false" id="racfKeyStore" 
            location="safkeyring://<userid>/<keyring>" 
            password="password" 
            readOnly="true" 
            type="JCERACFKS"/> 
    <ssl id="defaultSSLConfig" keyStoreRef="racfKeyStore" 
          sslProtocol="SSL_TLS" 
          serverKeyAlias="<userid>-Liberty-Server" />

结果

已成功配置 Liberty JVM 服务器的 SSL。