在子域名上启用 SSL

在子域名上启用 SSL

我已在网站的主域上运行 SSL,但当我使用以下配置时,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)运行。我应该如何进行设置?

答案1

由于 HOST 标头在请求内部经过加密,因此每个 IP 地址只能使用 HTTP 1.1 运行一个 SSL 网站,因此服务器在解密之前不知道它针对的是哪个 vhost。

如果您有多个 IP 地址,请将其替换为 xxx.xxx.xxx.xxx 中的 IP 地址,这样它应该可以工作,但请尝试 configtest:
/etc/init.d/httpd configtest或者如果它不是实时服务器,只需重新启动 apache。

相关内容