我有这样的设置:
<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”指令轻松调用单个文件。