我有域名 example.com,子域名为:www.example.com 和 a.example.com。假设我无法购买通配符证书,但我购买了 example.com 和 www.example.com 的证书。现在我购买了 a.example.com 的证书。该网站及其子域名位于同一文件夹中,使用一个 Apache vhost 文件,子域名定义为别名。
- 我可以将证书合并到一个文件中吗?
- 如果我使用相同的密钥和 csr 文件来生成证书会怎样?
- 是个仅有的在两个不同的虚拟主机中声明站点的解决方案?
答案1
我可以将证书合并到一个文件中吗?
不,仅支持一个叶证书。尽管从 2.4.8 版开始SSLCertificateFile
指令允许该文件中有多个证书,即仅包含中间 CA 证书,从叶到根排序,作为SSLCertificateChainFile
指示。
这SSLCertificateFile
当同时使用基于 RSA、DSA 和 ECC 的服务器证书时,指令可以多次使用(引用不同的文件名)。但您不能使用多个SSLCertificateFile
指令来加载证书ServerName
和 ServerAlias 的额外证书。
如果我使用相同的密钥和 csr 文件来生成证书会怎样?
仍然没有。
在两个不同的虚拟主机中声明站点是唯一的解决方案吗?
如果您有两个证书,则需要两个 SSL VirtualHosts。
答案2
无法合并证书。但您可以通过其他方式进行合并。对于 Apache,您可以使用mod_macro。
我有 50 个基于相同 wordpress 代码目录的域名(如 a.com、b.com、c.com、d.com 等)。转换为 https 时,每个域名都有自己的证书和私钥文件。我不想复制、粘贴和更改 VirtualHost 块代码 50 次。
通过 mod_macro 我不需要执行 50 次 VirtualHost 块。
我在另一个类似问题下回答过:是否可以从 HTTP_HOST(或类似的东西)为 SSLCertificateFile 生成一个变量?