IBM HTTP Server 证书管理
必须先为 Web 服务器创建证书,然后才能配置 IBM® HTTP Server 以接受 TLS (也称为 SSL) 连接。 SSL 证书用于向客户机认证 Web 服务器身份。
背景信息和工具
用于使用 IBM HTTP Server 创建证书的主要工具是 iKeyman,这是一个图形纯 Java™ 密钥管理工具。
在 z/OS® 操作系统上,所有证书管理都通过本地 gskkyman 证书管理工具完成。
在 Microsoft Windows 上,您可以使用 "开始 "菜单启动 iKeyman。 在其他平台上,从 IBM HTTP Server bin/ 目录启动工具,例如所有 IBM HTTP Server 可执行文件。
本机和 Java 补充命令行证书管理工具也在 IBM HTTP Server bin/ 目录中作为 gskcmd (也称为 iKeycmd) 和 gskcapicmd (也称为 gsk8capicmd) 提供。 这两种工具共享相似的语法,并包含大量嵌入式用法信息。
IBM HTTP Server 中的证书限制
- IBM HTTP Server 支持 Rivest-Shamir-Adleman (RSA) 和椭圆曲线数字签名算法 (ECDSA) 证书。 数字签名算法 (DSA) 证书不受支持。
- z/OS 上的 gskkyman 实用程序和
bin/gskcapicmd
实用程序是唯一支持使用 ECDSA 密钥创建证书和证书签名请求的证书管理工具。 iKeyman 和bin/gskcmd
实用程序具有 ECDSA 功能,但该功能不会与 IBM HTTP Server进行互操作。
- z/OS 上的 gskkyman 实用程序和
- 在运行时, IBM HTTP Server支持密钥长度最多为 4096 位的证书。
- Ikeyman 和 gskcmd (ikeycmd) 支持创建长度长达 4096 位的证书。 gskcapicmd 命令支持长度长达 4096 位的证书。
- 多个密钥数据库文件可与 IBM HTTP Server的每个实例配合使用,但每个支持 TLS 的虚拟主机只能使用一个密钥数据库文件 (仍可包含多个个人证书)。
有关证书管理工具的完整文档
- gskkyman 的完整文档在 z/OS Internet Library 中的 Cryptographic Services PKI Services Guide and Reference 文档 (SA22-7693) 中提供。
- iKeyman v8 User's Guide 中提供了 iKeyman 和 gskcmd (Ikeycmd) 的完整文档。
- 在 IBM HTTP Server 库页面上提供了本机命令行证书管理工具 gskcapicmd (gsk8capicmd) 的完整文档。
系统设置
- 与 IBM HTTP Server的先前发行版不同,请勿移动或修改 java/jre/lib/ext/gskikm.jar 文件。
证书管理任务
iKeyman (分布式操作系统) 和 gskkyman (z/OS 操作系统) 的完整文档中记录了证书管理的详细示例场景。
请参阅常见任务的下列命令行示例。 您可以输入仅包含前两个参数的下列命令来查看完整的用法语法,也可以参阅命令的综合文档。 下表列示了可以对 CA 证书执行的操作、可以用来执行该操作的 AdminTask 对象以及如何在控制台上浏览至该证书:
- 创建 CMS 密钥库
创建要与 IBM HTTP Server配合使用的密钥库时,请指定用于将密码隐藏到文件中的选项,而不考虑所使用的工具。
# Syntax: <ihsroot>/bin/gskcapicmd -keydb -create -db <database> -pw <password> -stash <ihsroot>/bin/gskcapicmd -keydb -create -db /opt/IBM/HTTPServer/key.kdb -pw password -stash
- 使用一组缺省可信 CA 证书来填充密钥库
缺省情况下,新的密钥库未包含任何可信 CA 证书。
# The populate operation is supported with Ikeyman and gskcmd (ikeycmd) only, not with gskcapicmd. # Syntax: <ihsroot>/bin/gskcmd -cert -populate -db <database> -pw <password> <ihsroot>/bin/gskcmd -cert -populate -db /opt/IBM/HTTPServer/key.kdb -pw password
- 需要时添加其他 CA 证书(可选)
# Syntax: <ihsroot>/bin/gskcapicmd -cert -add -db <database> -pw <password >-file <inputcert> -label <labelname> <ihsroot>/bin/gskcapicmd -cert -add -db /opt/IBM/HTTPServer/key.kdb -pw password -file cacert.cer -label "CA certificate from example.com"
- 创建自签名证书以用于测试目的(可选)
#Syntax: <ihsroot>/bin/gskcapicmd -cert -create -db <database> -pw <password> \ -dn <distinguished name> -label <labelname> -size <size> <ihsroot>/bin/gskcapicmd -cert -create -db /opt/IBM/HTTPServer/key.kdb -pw password \ -san_dnsname www.example.com -san_dnsname example.com \ -dn "cn=www.example.com" -label "example.com" -size 2048
- 创建证书请求
大多数字段和选项是可选的,其中包括选择签名算法(此签名仅由认证中心使用,而不在运行时使用。)。 您还可以为 Web 服务器指定其他主机名。
# Syntax: <ihsroot>/bin/gskcapicmd -certreq -create -db <database> -pw <password> \ -dn <distinguished name> -label <labelname> -size <size> -file <outputfilename> <ihsroot>/bin/gskcapicmd -certreq -create -db/opt/IBM/HTTPServer/key.kdb -pw password \ -dn "cn=www.example.com" -san_dnsname www.example.com -san_dnsname example.com \ -label www.example.com -size 2048 -file example.csr
- 将证书请求提交至可信认证中心
此任务不包括使用任何本地工具。 通常,证书请求 (example.csr) 通过电子邮件发送或上载到可信认证中心。
- 接收签发的证书
接收证书会将来自 CA 的签名证书与您的 KDB 文件中的专用密钥(个人证书)相关联。 证书只能接收到生成相应证书请求的 KDB 中。
# Syntax: <ihsroot>/bin/gskcapicmd -cert -receive -db db <database> -pw <password> -file <inputcertificate> <ihsroot>/bin/gskcapicmd -cert -receive -db/opt/IBM/HTTPServer/key.kdb -pw password -file certificate.arm
- 列示密钥库中的证书。
# Syntax <ihsroot>/bin/gskcapicmd -cert -list -db <database> -pw <password> <ihsroot>/bin/gskcapicmd -cert -list -db /opt/IBM/HTTPServer/key.kdb -pw password
- 将证书从 JKS 或 PKCS12 导入到可供 IBM HTTP Server 使用的密钥文件中 (可选)
您可以将其他工具创建的现有专用密钥和证书导入到现有的密钥文件中,而不是创建新的专用密钥(个人证书)。
# Syntax: <ihsroot>/bin/gskcapicmd -cert -import -db <inputp12file> -pw <pkcs12password>\ -target <existingkdbfile> -target_pw <existingkdbpassword> <ihsroot>/bin/gskcapicmd -cert -import -db other.p12 -pw pkcs12password \ -target key.kdb -target_pw password
- 查看证书到期数据(可选)
-expiry
标志会导致显示未来numdays
天内被视为到期的证书。 使用0
以显示已到期的证书,或者使用较大的数字以显示所有证书的到期日期。# Syntax:<ihsroot>/bin/gskcapicmd -cert -list -db <database> -pw <password> -expiry <numdays> <ihsroot>/bin/gskcapicmd -cert -list -db key.kdb -password -expiry 365