
我已經在我的網站的主網域上運行了 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
每個 IP 位址只能使用 HTTP 1.1 來執行一個 SSL 網站,因為 HOST 標頭在請求內進行了加密,因此伺服器在解密之前不知道它的目標是哪個虛擬主機。
如果您有多個 IP 位址,請替換為 xxx.xxx.xxx.xxx ,其中 xxx.xxx.xxx.xxx 是兩者中的 IP 位址,它應該可以工作,但請嘗試配置測試:
/etc/init.d/httpd configtest
或者如果它不是實時伺服器,則重新啟動apache。