Apache-2.2
如何防止 https:// 在沒有證書的情況下從域訪問?
我有這個設置
Server version: Apache/2.2.22 (Ubuntu) OpenSSL 1.0.1c 10 May 2012
一個連接多個域的 IP。因為
example1.com
我有一個簽名的 SSL 證書,因此example1.com
可以通過https://secure.example1.com
這也適用於
example2.com
(使用有效證書籤名並通過 訪問https://secure.example2.com
)但是,
example3.com
它沒有綁定任何 SSL 證書,並且不應通過https
(SSL 埠 443)訪問。但是,**當使用者訪問時會https://example3.com
顯示警告。**在 Chrome 中看起來像這樣您嘗試訪問 example3.com,但實際上您訪問了一個標識為 secure.example1.com 的伺服器。這可能是由於伺服器上的錯誤配置或更嚴重的原因造成的。您網路上的攻擊者可能正試圖讓您訪問 example3.com 的假冒(且可能有害)版本
如果您忽略警告,使用者實際上會看到
secure.example1.com
VirtualHost 設置如下所示
<VirtualHost *:443> ServerName secure.example1.com DocumentRoot /var/www/blahblah SSLEngine on SSLCertificateFile /blahblah.crt SSLCertificateKeyFile /blahblah.key SSLCertificateChainFile /blahblah.pem </VirtualHost> <VirtualHost *:443> ServerName secure.example2.com DocumentRoot /var/www/blahblah SSLEngine on SSLCertificateFile /blahblah.crt SSLCertificateKeyFile /blahblah.key SSLCertificateChainFile /blahblah.pem </VirtualHost> <VirtualHost *:80> ServerName example3.com DocumentRoot /var/www/blahblah </VirtualHost>
我怎樣才能防止這種行為?
非 SSL 域不應使用此 IP。即使對於多個支持 SSL 的域,您也可以依靠客戶端毫無問題地實現 SNI,這可能是一個安全的假設,也可能不是一個安全的假設。
問題是,在 Apache 可以將瀏覽器重定向到 HTTP 之前,SSL 握手必須成功,因此如果您無法為域提供有效證書,客戶端將始終聲稱 SSL 錯誤。
編輯:如果您只使用一個具有適當 SAN 的證書(多域證書),則多個 SSL 域將毫無問題地工作。但是,非 SSL 域的問題仍然存在。