我已经在我的网站的主域上运行SSL,但是当我使用以下configuration时,SSL将不会在子域上运行。 我应该使用子域的名称或其他?
# # domain.com (/etc/apache2/sites-available/domain.com) # <VirtualHost *:80 *:443> ServerAdmin [email protected] ServerName www.domain.com ServerAlias domain.com ServerAlias XX.XX.XX.XX # Directory Root. DocumentRoot /sites/domain.com/www/ # CGI Directory ScriptAlias /cgi-bin/ /sites/domain.com/cgi-bin/ <Location /cgi-bin> Options +ExecCGI </Location> # Logfiles ErrorLog /sites/domain.com/logs/error.log CustomLog /sites/domain.com/logs/access.log combined # Enable SSL SSLEngine On SSLCertificateFile /sites/domain.com/ssl/star_domain_com.crt SSLCertificateKeyFile /sites/domain.com/ssl/domain.key SSLCertificateChainFile /sites/domain.com/ssl/DigiCertCA.crt SetEnvIf User-Agent ..*MSIE.*. nokeepalive ssl-unclean-shutdown </VirtualHost> # # support.domain.com (/etc/apache2/sites-available/support.domain.com) # <VirtualHost *:80 *:443> ServerName support.domain.com ServerAlias support.domain.com:443 # Enable SSL SSLEngine On SSLCertificateFile /sites/ikeyless.com/ssl/star_domain_com.crt SSLCertificateKeyFile /sites/ikeyless.com/ssl/domain.key SSLCertificateChainFile /sites/ikeyless.com/ssl/DigiCertCA.crt SetEnvIf User-Agent ..*MSIE.*. nokeepalive ssl-unclean-shutdown # Directory Root. DocumentRoot /sites/support.domain.com/www/ # Logfiles ErrorLog /sites/support.domain.com/logs/error.log CustomLog /sites/support.domain.com/logs/access.log combined </VirtualHost>
更新
我想要这个单一的SSL证书(这是一个通配证书)跨主域和所有子域(包括support.domain.com和live.support.domain.com)运行。 我应该如何去做这个设置?
由于HOST头在请求内被encryption,所以你只能使用HTTP 1.1为每个IP地址运行一个SSL网站,所以服务器不知道它所瞄准的是哪个虚拟主机,直到解密。
如果您有多个IP地址,请将xxx.xxx.xxx.xxxreplace为两者中的IP地址,然后尝试使用configtest:
/etc/init.d/httpd configtest或只是重新启动Apache,如果它不是一个活的服务器。