因证书签名算法升级,目前证书均需要使用 SHA-256 算法签发。IBM Http Server 8.5之前版本不支持SHA-256算法,无法加载使用SHA-256算法证书生成的kdb文件。如需配置SHA-256算法证书,请升级IHS到8.5或以上版本。
一、创建证书请求
1. 运行ikeyman
IBM Http Server附带 I Key Manager 工具,可用于管理 IHS 的证书密钥文件。IBM HTTP Server V6.1版本不支持创建2048位证书请求,请使用IHS7或以上版本自带的 I Key Manager 工具来创建证书申请。选择“Start Key Management Utility”,运行I Key Manager
2. 创建密钥库文件
密钥库类型选择“CMS”
注意:请选中“将密码存储到文件”选项,此选项将把密码加密保存到扩展名为.sth的文件中。IHS启动时,会自动从该.sth文件中读取密码,如果不选择此项启动HTTP SERVER 时会报错。
3. 生成证书请求
IHS6下的ikeyman最高支持1024位密钥,目前所有服务器要求2048位密钥。使用IHS7版ikeyman创建的含2048位密钥的密钥库文件,在IHS6下仍可以正常应用。
导出证书签名请求文件certreq.arm,并稍后发送给天威诚信,等待证书的签发。
二、导入服务器证书
1. 获取并导入CA证书
将证书签发邮件中的从BEGIN到 END结束的两张中级CA证书内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)分别粘贴到记事本文本文件中。修改文件扩展名,保存为intermediate1.cer和intermediate2.cer文件(如果只有一中级证书,则只需要保存安装一张中级证书)。
运行ikeyman并打开您的kdb文件,切换到“签署人证书”视图,并选择“添加”
分别添加两张中级CA证书,并输入证书的标号
2. 填充根证书
IHS7版ikeyman创建的kdb文件默认不包含服务器证书的根证书,需要使用IHS7版ikeyman打开生成的kdb文件,切换到“签署人证书”选项中,选择“填充”模式,将VeriSign服务器证书的“VeriSign Class 3 Public Primary Certificate Authority”的根证书填充到kdb格式证书密钥库文件中。
3. 获取并导入服务器证书
将证书签发邮件中的从BEGIN到 END结束的服务器证书内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”) 粘贴到记事本等文本编辑器中,保存为server.cer文件 。
切换到“个人证书”视图,选择“接收”,选择并导入您的服务器证书文件。
导入证书成功
IHS7版本I Key Manager的bug问题处理
在IHS7版I Key Man中接收服务器证书后,可能在“个人证书”中同时出现两个完全相同的服务器证书项的bug问题。此模式下的kdb文件,在Windows平台下的IHS中应用不受影响,但在Unix/Linux平台下,大部分IHS将无法加载该kdb文件。因此,需要通过新建一个空的kdb文件,并将您存在bug问题的kdb文件中,“个人证书”下存储的“test.itrus.com.cn”的服务器证书迁移到新建的空kdb文件中。IHS7 bug示例图:
新建空的CMS格式kdb文件,设置文件名与原kdb文件名不同。
注意:请选中“将密码存储到文件”选项,此选项将把密码加密保存到扩展名为.sth的文件中。IHS启动时,会自动从该.sth文件中读取密码,如果不选择此项启动HTTP SERVER时会报错。
请留意点击“确定”后是否生成.sth文件。部分版本ikeyman存在环境兼容bug,虽已勾选“将密码存储到文件”,但无法生成.sth的密码存储文件。在新建的kdb文件中,切换到“个人证书”选项卡,选择“导入”。选择密钥文件类型为 CMS,并选中您存在bug问题的 key.kdb 文件。
选择将您原kdb文件中的任意一个“个人证书”导入到新的kdb文件中。
选择导入完成之后,请确认检查证书已被设置为缺省证书,并确保“签署人证书”中同时已包含所有必需的CA证书(包含两张中级CA及一张root证书)。
确认新建的kdb文件中“签署人证书”完整,与之前制作的kdb文件包含的签署人证书相同。“个人证书”中不存在重复的证书项目即可。
确认证书成功迁移到新的 kdb 文件中后,可保留新的 kdb 文件,并删除存在 bug 的 kdb 文件。
三、安装服务器证书
打开IHS安装目录下conf目录中的httpd.conf文件,在所有已存在的 Load Module 条目下方添加如下条目以加载 IBM SSL 模块 LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
在 httpd.conf 文件结尾处添加如下内容:
<IfModule mod_ibm_ssl.c>
Listen 0.0.0.0:443
<VirtualHost *:443>
SSLEnable
SSLProtocolDisable SSLv2 SSLv3
SSLCipherSpec TLS_RSA_WITH_AES_256_CBC_SHA
SSLCipherSpec TLS_RSA_WITH_AES_128_CBC_SHA
SSLCipherSpec SSL_RSA_WITH_3DES_EDE_CBC_SHA
</VirtualHost>
</IfModule>
SSLDisable
KeyFile "C:\Program Files\IBM\SSLKeyDB\key.kdb"
保存退出,并重启IHS。
完成HIS的设置后,您还需要登录Websphere控制台,检查“环境”=“虚拟主机”检查配置中default_host或您自定义的虚拟主机项,“主机别名”下,是否已正确启用443端口。
四、服务器证书的备份及恢复
在您成功的安装和配置了服务器证书之后,请务必依据下面的操作流程,备份好您的服务器证书,以防证书丢失给您带来不便。
1. 服务器证书的备份
备份服务器证书密钥库文件key.kdb、key.rdb、key.sth即可完成服务器证书的备份操作。
2. 服务器证书的恢复
请参照服务器证书配置部分,将服务器证书密钥文件恢复到您的服务器上,并修改配置文件,恢复服务器证书的应用。