生成集合体控制器 SSL 密钥
可使用集合体实用程序 genKey 命令以 Java™ 密钥库 (JKS) 格式生成密钥库。此密钥库包含允许与集合体控制器进行安全套接字层 (SSL) 通信的个人证书。
开始之前
创建集合体控制器。请参阅配置 Liberty 集合体。
关于此任务
与集合体控制器的远程 JMX 连接使用 SSL 并需要适用 SSL 密钥。集合体实用程序 genKey 命令生成密钥库,此密钥库包含集合体控制器信任的个人证书。所生成密钥库还包含公共签署者证书,以便它可充当信任库。
集合体成员服务器或非 Liberty 服务器之类的 Java 虚拟机 (JVM) 要连接至集合体控制器,JVM 必须具有包含集合体控制器信任的密钥的密钥库。genKey 命令生成此密钥库。JVM 具有密钥库后,JVM 可连接至集合体控制器,集合体控制器可返回其密钥。将集合体控制器密钥返回给 JVM 的操作称为 SSL 握手。
JVM 要将集合体控制器密钥添加至 JVM 信任库,必须使用 --autoAcceptCertificates 选项。如果不使用 --autoAcceptCertificates 选项,那么将提示用户将密钥添加至信任库。
过程
运行集合体 genKey 命令以生成 JKS 密钥库。
wlp/bin/collective genKey [--host=collectiveControllerHost --password=collectiveControllerAdminUserPassword --port=collectiveControllerHTTPSPort --user=collectiveControllerAdminUserID --keystorePassword=generatedKeystorePassword --autoAcceptCertificates]
例如,对于使用端口 1090 且具有集合体控制器管理用户 Admin1 和密码 Admin1pwd 的主机 machineA 上的集合体控制器,运行以下命令以生成密钥库并将其密码设置为 kspwd:
collective genKey --host=machineA --password=Admin1pwd --port=1090 --user=Admin1 --keystorePassword=kspwd --autoAcceptCertificates
以下示例包含 genKey 命令的必需设置:
- --host=collectiveControllerHost
- 目标集合体控制器的主机名
- --password=collectiveControllerAdminUserPassword
- 目标集合体控制器的管理用户的密码。如果未定义密码,那么系统会提示您输入 --user 设置指定的管理用户的密码。
- --port=collectiveControllerHTTPSPort
- 目标集合体控制器的 HTTPS 端口号
- --user=collectiveControllerAdminUserID
- 目标集合体控制器的管理用户
- --keystorePassword=generatedKeystorePassword
- 所生成密钥库的密码。如果已指定密码并且未定义任何值,那么系统会提示您输入密码。
genKey 命令还具有以下可选设置:
- --autoAcceptCertificates
- 在此命令期间自动信任 SSL 证书。
- --certificateSubject=DN
- 已生成 SSL 证书的专有名称 (DN)。缺省 DN 为:
CN=localhost,OU=client,O=ibm,C=usCN=localhost,OU=client,O=ibm,C=usCN=localhost,OU=client,O=ibm,C=usCN=localhost,OU=client,O=ibm,C=us
- --certificateValidity=numberOfDays
- 已生成 SSL 证书的有效天数。缺省有效期为 1825 天或 5 年。最短有效期为 365 天。
- --keystoreFile=filePath
- 密钥库写至的文件。缺省值为当前目录中的 key.jks 文件。
- --key=key
- 要用于 aes 编码的密钥。产品对所指定密钥字符串执行散列算法,以产生用来对密码进行加密和解密的加密密钥。为对服务器提供该密钥,应定义其值为该密钥的可变 wlp.password.encryption.key。如果不指定此选项,那么该产品将提供缺省密钥。