您可以配置 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 浏览器。
- 创建认证中心 (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 中的签名证书的服务器证书,其中 <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 (生成证书) 命令。
- 将签名证书和服务器证书连接到 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 传输到工作站,并将其作为认证中心证书导入到浏览器中。
- 编辑 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。