Ubuntu

引入第二個 SSL 證書時,其他站點在多站點 Apache 伺服器上提供服務

  • October 18, 2016

我有一個在 Ubuntu 伺服器上執行的 Apache 服務,它有兩個完全不同的網站,即不同的域。

它們每個都有一個單獨的 VirtualHost 配置,直到最近,它們中只有一個通過 HTTPS 提供服務。

今天早上,當我為第二個站點引入了一個新的 SSL 證書並相應地更改了 VirtualHost 配置(改為偵聽埠 443,將其指向證書文件等),而不是像預期的那樣為第二個站點提供服務,它為原始 HTTPS 提供服務代替網站。

如果有人可以幫助我,我將不勝感激。

這是(經過清理的)VirtualHost 文件:

第一個站點 - 繼續執行壓倒一切的站點

<VirtualHost *:443>

ServerAdmin webmaster@localhost
ServerName www.first-site.com
ServerAlias some similar names
DocumentRoot /var/www/first-site.com/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

#SSL config
SSLEngine on
SSLProtocol -All +TLSv1.2
SSLCertificateFile /etc/apache2/ssl/first-site/firstsite-certificate.crt
SSLCertificateKeyFile /etc/apache2/ssl/first-site/firstsite.key
SSLCertificateChainFile /etc/apache2/ssl/first-site/firstsitechain.crt

.....More site-specific rules.....

第二個站點 - 不斷被覆蓋的站點

<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName second-site.com
ServerAlias some similar names
DocumentRoot /var/www/secondsite/htdocs
ErrorLog /var/log/apache2/secondsite-error.log
CustomLog /var/log/apache2/secondsite-access.log combined

SSLEngine on
SSLProtocol -All +TLSv1.2
SSLCertificateFile /etc/apache2/ssl/secondsite/secondsite.crt
SSLCertificateKeyFile /etc/apache2/ssl/secondsite/secondsite.key
SSLCertificateChainFile /etc/apache2/ssl/secondsite/secondsitechain.crt

.....More site-specific rules.....

我查看了日誌,但這並沒有彈出。也許這只是我的grep-fu…

有人經歷過類似的事情嗎?需要更多資訊?

關鍵字:SNI(伺服器名稱指示)

看起來您的伺服器或客戶端缺少 SNI 支持,請參閱

https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

要測試您的伺服器是否正在返回 SNI 標頭資訊,您可以嘗試

openssl s_client -servername www.SERVERNAME.com -tlsextdebug -connect www.YOURSERVER.com:443 2>/dev/null | grep "server name"

https://serverfault.com/questions/506177/how-can-i-detect-if-a-server-is-using-sni-for-https

您也可以嘗試這樣的 SSL 伺服器測試https://www.ssllabs.com/ssltest/ “握手模擬”應該給你這樣的老客戶:

Android 2.3.7 No SNI 證書不正確,因為此客戶端不支持 SNI

但為較新的客戶提供匹配的證書。

順便說一句,這裡有人遇到了類似的問題 https://serverfault.com/questions/510132/apache-sni-namevhosts-always-route-to-first-virtualhost-entry

引用自:https://unix.stackexchange.com/questions/317176