一个虚拟主机,多个证书

一个虚拟主机,多个证书

我有域名 example.com,子域名为:www.example.com 和 a.example.com。假设我无法购买通配符证书,但我购买了 example.com 和 www.example.com 的证书。现在我购买了 a.example.com 的证书。该网站及其子域名位于同一文件夹中,使用一个 Apache vhost 文件,子域名定义为别名。

  1. 我可以将证书合并到一个文件中吗?
  2. 如果我使用相同的密钥和 csr 文件来生成证书会怎样?
  3. 是个仅有的在两个不同的虚拟主机中声明站点的解决方案?

答案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 生成一个变量?

相关内容