我正在尝试从 godaddy 加载服务器证书,因此有 xxxxxxx.crt 和 bundle.crt,我制作了一个密钥/csr,我们用它来创建证书。我现在正在尝试加载另一个证书,因为我们使用的手机必须与我们的服务器握手,然后希望发现制造商 CA 以进行安全配置。
我的初始配置如下:
<VirtualHost ip.ip.ip.ip:443>
JkMount /* worker1
JkMount / worker1
ServerAdmin [email protected]
ServerName identifier.server.domain.co.uk
SSLEngine on
SSLVerifyClient require
SSLCertificateFile /path/path/XXXXXXXXxxxxxxx.crt
SSLCACertificateFile /path/path/gd_bundle-g2.crt
SSLCertificateKeyFile /path/path/polycom.key
SSLCertificateFile /path/path/Polycom_Root_CA.crt
SSLVerifyDepth 10
SSLOptions +ExportCertData
ErrorLog logs/identifier.server.domain.co.uk-error_log
CustomLog logs/identifier.server.domain.co.uk-access_log common
</VirtualHost>
当我注释掉 Polycom 证书时,我可以重新启动 httpd 而不会出现任何错误,但尝试包含该证书会中断重新启动。我是不是做了一件非常愚蠢的事情,还是我必须将证书连接在一起?
答案1
您无法在单个虚拟主机中加载两个证书。这毫无意义
规则是每个虚拟主机一个 x509 证书。
如果您想在签署证书的链中添加 CA,只需将它们添加到单个 SSLCACertificateFile 中。
另外,请记住,在 2.4 中您可以跳过 SSLCACertificateFile 并将 SSLCertificateFile 中的所有证书链从叶到根添加。
答案2
通过将 Polycom CA 文件格式化为 PEM 而不是 DER 并将其设为 SSLCACertificateFile,然后进行更改,解决了我所认为的问题;
SSLCertificateChainFile /path/path/gd_bundle-g2.crt
现在,我获得了从手机到服务器的积极握手,并传送了安全的数据包。