![我可以在 Apache 中同时使用 RSA 和 ECC 证书吗?](https://linux22.com/image/651438/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Apache%20%E4%B8%AD%E5%90%8C%E6%97%B6%E4%BD%BF%E7%94%A8%20RSA%20%E5%92%8C%20ECC%20%E8%AF%81%E4%B9%A6%E5%90%97%EF%BC%9F.png)
如果我只是使用“SSLCertificateFile”和“SSLCertificateKeyFile”两次,那么第一次的证书链就会断裂。
我可以使用由不同的中间 CA 证书颁发的 RSA 和 ECC 证书吗?
==================
更新:OpenSSL 1.0.2 解决了这个问题。只需使用“SSLCertificateFile”和“SSLCertificateKeyFile”两次。请注意,“SSLCertificateFile”应该是证书的整个链。
答案1
这取决于 Apache 版本和 OpenSSL 版本。
使用 Apache 并行运行 ECC 和 RSA 证书不同的中级证书需要 Apache 2.4.8+ 和 OpenSSL 1.0.2+。
该sslcertificatefile
条目从 Apache 2.4.8 开始添加了对中间体的支持。OpenSSL 从 1.0.2 版开始添加了按证书加载中间体的功能。
这些文件还可能包含中间 CA 证书,按从叶到根的顺序排序。版本 2.4.8 及更高版本支持此功能,并已淘汰 SSLCertificateChainFile。当使用 OpenSSL 1.0.2 或更高版本运行时,这允许基于每个证书配置中间 CA 链。
来源:http://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatefile
尽管早期版本的 Apache 支持多个sslcertificatefile
条目,但它不会从这些条目中加载中间件,并且只能SSLCertificateChainFile
使用一次。因此,在早期版本中,您仍然可以并行运行 ECC/RSA/DSA 证书,但它们都必须使用相同的中间件。
但请注意:仅当您使用单个基于 RSA 或 DSA 的服务器证书时,提供证书链才有效。如果您使用耦合的 RSA+DSA 证书对,则只有当两个证书实际上使用相同的证书链时,这才会有效。否则浏览器在这种情况下会感到困惑。
来源:http://httpd.apache.org/docs/2.4/mod/mod_ssl.html#SSLCertificateChainFile