在多个虚拟主机之间共享一个 SSL 证书

在多个虚拟主机之间共享一个 SSL 证书

我有这样的设置:

<VirtualHost 192.168.1.104:80>
    ServerName domain1
    DocumentRoot /home/domain/public_html
    ...
</VirtualHost>
<VirtualHost 192.168.1.104:80>
    ServerName domain2
    DocumentRoot /home/domain2/public_html
    ...
</VirtualHost>
<VirtualHost 192.168.1.104:80>
    DocumentRoot /home/domain3/public_html
    ServerName domain3
    ...
</VirtualHost>

<VirtualHost 192.168.1.104:443>
    ServerName domain3
    SSLCertificateFile /usr/share/ssl/certs/certificate.crt
    SSLCertificateKeyFile /usr/share/ssl/private/private.key
    SSLCACertificateFile /usr/share/ssl/certs/bundle.cabundle
    ...
</VirtualHost>

我想domain3在其他域中使用证书,最好不必重复所有<VirtualHost 192.168.1.104:443>配置。

换句话说,我想要这样的东西:如果 vhost 没有明确的 ssl 配置,则使用证书domain3(/usr/share/ssl/certs/certificate.crt)

笔记:

1.- 我肯定会在未来设置更多的虚拟主机

2.- 我知道(但并不关心)浏览器会显示 SSL 警告(主机名不匹配)

如果可能的话?怎么做?

答案1

正如您所述,不匹配的证书和主机名是 Apache 中没有此功能的原因。您必须复制并粘贴 SSL 证书的代码,才能将它们用于每个虚拟主机。

除了获取单独的证书之外,我建议使用多个虚拟主机配置文件。每个文件都特定于一个虚拟主机,您可以通过主 Apache 配置文件中的“Include”指令轻松调用单个文件。

相关内容