在 Apache 的 VirtualHost 中包含 2 个 CA,使用 httpd 进行 https 电话/服务器握手

在 Apache 的 VirtualHost 中包含 2 个 CA,使用 httpd 进行 https 电话/服务器握手

我正在尝试从 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

现在,我获得了从手机到服务器的积极握手,并传送了安全的数据包。

相关内容