我可以对所有 VirtualHosts 使用单个 SSLCertificateFile,而不是为每个 VirtualHost 创建一个吗?

我可以对所有 VirtualHosts 使用单个 SSLCertificateFile,而不是为每个 VirtualHost 创建一个吗?

我有许多 Apache VirtualHosts,每个都使用一个专用的 SSLCertificateFile。

这是 VirtualHost 的配置示例:

<VirtualHost *:443>

     ServerName subdomain.domain.localhost

     DocumentRoot "/Users/<my_user_name>/Sites/users/public"
     RackEnv development

   <Directory "/Users/<my_user_name>/Sites/users/publ`enter code here`ic">
     Order allow,deny
     Allow from all
   </Directory>

    # SSL Configuration
    SSLEngine on

    #Self Signed certificates
    SSLCertificateFile /private/etc/apache2/ssl/server.crt
    SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
    SSLCertificateChainFile /private/etc/apache2/ssl/ca.crt

</VirtualHost>

由于我使用乘客偏好面板,这是 apache2 的一部分httpd配置文件文件:

<IfModule passenger_module>
  NameVirtualHost *:80
  <VirtualHost *:80>
    ServerName _default_
  </VirtualHost>
  Include /private/etc/apache2/passenger_pane_vhosts/*.conf
</IfModule>

我可以对所有 VirtualHosts 使用单个 SSLCertificateFile(我听说过通配符)而不是为每个 VirtualHost 创建一个吗?如果是的话,我该如何更改上面列出的文件?

答案1

如果您的所有域虚拟主机都存在于一个域内,那么可以。例如,foo.example.com、bar.example.com 和 www.example.com 都可以共享为 *.example.com 创建的单个证书。

如果您以其他方式执行此操作,您将收到证书警告。

您在配置中唯一需要做的就是指定适当的证书文件。

答案2

不可以。SSL 证书是为子域名(即 secure.example.com)颁发的,但一些证书签名机构确实为域名 *.example.com 提供通配符证书,但没有通配符证书。这会损害 SSL 信任关系的工作方式。

通常,域名通配符比常规证书要贵得多。

相关内容