我可以为所有的VirtualHost使用一个SSLCertificateFile,而不是为每个VirtualHost创build一个SSLCertificateFile?

我有许多Apache VirtualHosts,我使用专用的SSLCertificateFile。

这是一个VirtualHost的configuration示例:

<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> 

由于我使用Passenger Preference Pane维护了更多的Ruby on Rails应用程序,因此这是apache2 httpd.conf文件的一部分:

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

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

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

如果您以任何其他方式执行此操作,您将获得证书警告。

您需要在configuration中唯一要做的是指定相应的证书文件。

没有。 SSL证书颁发给子域名secure.example.com,但某些证书签名授权机构为域* .example.com提供通配符证书,但没有通配符证书。 这会影响SSL信任关系的工作方式。

通常,域的通配符比普通证书要贵得多。