在 IBM HTTP Server 上安装 SSL 通配符证书

Installing SSL wildcard certificate on IBM HTTP Server

我 运行 2 个 IBM HTTP Servers (7.0) 在不同的机器上,我正在更新两者的 SSL 证书。该证书是通配符证书。

我已经成功更新了我从中生成更新请求的服务器的证书,一切似乎都很好。

我在第二台服务器上尝试重新使用证书时出现问题。我读过几个网站,它们声明我需要从第一台服务器导出证书(使用 iKeyMan),然后将其复制到第二台服务器。然后创建一个新的 KDB 文件,并导入证书。我已经这样做了,当查看新 KDB 文件的内容时,它似乎是完整的(它具有所有需要的证书 - 根证书、中间证书等)。

然而,当我尝试使用我的服务器配置中的文件(KDB 和相应的 STH 文件)时,它失败了 - 服务器启动但我的证书没有安装。

有人知道我做错了什么吗?

如评论中所述,SSLServerCert 指令值必须与要在 .kdb 文件中使用的证书标签相匹配。使用密钥管理实用程序 (IKEYMAN) 实用程序标签可以在 个人证书 部分中检查。

错误日志文件中报告的错误消息"SSL Handshake Failed, Specified label could not be found in the key file" IBM HTTP Server 无法找到个人证书存储在 KDB 密钥数据库文件中,并且由于 SSL 配置:

For example: 
Listen 0.0.0.0:443
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so

<VirtualHost 0.0.0.0:443>
ServerName fullyqualifyname or site name.
SSLEnable
SSLClientAuth None
</VirtualHost>
SSLDisable
KeyFile "c:/program files/ibm http server/key.kdb"

这是最常用的 SSL VirtualHost Stanza 配置。 IBM HTTP Server 旨在从标记为默认的个人证书部分搜索存储在 KDB 密钥数据库文件中的个人证书。

使用ikeyman 实用程序打开KDB 密钥数据库文件,在个人证书部分,双击证书标签名称或单击View/Edit 按钮以显示密钥信息证书上下文并查看左下角角落有一个复选框,用于勾选 “将证书设置为默认值”。勾选并单击确定后,证书标签名称将更改:

From: 
*.ibm.com 

To: 
 * *.ibm.com 

停止并启动 IBM HTTP Server 以识别在 KDB 密钥数据库文件中所做的更改。重试向 IBM HTTP Server 发送 https 请求。现在,Web 服务器搜索会在 SSL 握手期间找到并向客户端浏览器提供标记为默认的个人证书。 如果 IBM HTTP Server KDB 密钥文件中只有一个个人证书,建议使用此方法。使用带有证书标签名称的 SSLServerCert 指令,这是一个有效的选项。但是,当您在密钥数据库文件中存储了多个证书以及多个 SSL Virtualhosts 节配置时,它很有用并且是必需的。查看以下 IBM Technote 单击 here 以获取有关如何在 IBM HTTP Server 中配置 SSL 的指南。