Ssl
多個虛擬主機的一個 IP 地址和萬用字元證書(Windows、Apache 2.4.2、OpenSSL 1.0.2e)
我已經搜尋和搜尋,但我找不到解決我的問題的方法,所以如果這聽起來很熟悉,我很抱歉,但我很茫然。
我有:
- 視窗環境
- 阿帕奇 2.4.2
- OpenSSL 1.0.2e
- 一個IP地址(開發箱:127.0.0.1)
- 多個虛擬主機(www.site.co.uk、sub.site.co.uk 等)
- 來自 Comodo 的正版域驗證萬用字元證書
我需要為我的所有虛擬主機使用萬用字元證書。
我已經使用 openssl 測試了站點/證書,並驗證它可以。
在埠 80 上使用標準 http 時,所有站點都可以正常工作。
當我啟用 httpd-ssl.conf 時,我開始遇到麻煩。
我已經看到並嘗試了幾個 http-ssl.conf 配置的範例,但都導致間歇性連接失敗,即 Firefox:“安全連接失敗”,IE11:“無法顯示此頁面”。但是,如果我刷新頁面(在每個瀏覽器中),頁面就會顯示,我可以看到證書是有效的。
根據我的閱讀,它指向 http-ssl.conf 的錯誤配置,但我嘗試了 Mozilla SSL 配置生成器(https://mozilla.github.io/server-side-tls/ssl-config -generator/),許多stackoverflow答案,但仍然沒有樂趣。
這是我目前的 httpd-ssl.conf 文件:
Listen 443 https SSLStrictSNIVHostCheck off SSLPassPhraseDialog builtin SSLSessionCache "shmcb:C:/Apache2.4/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLProtocol All -SSLv2 -SSLv3 SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS <VirtualHost 127.0.0.1:443> ServerName www.site.co.uk ServerAlias www.site.co.uk DocumentRoot C:\WebServer\Apache2.4\htdocs\www.site.co.uk SSLEngine On SSLCertificateFile "C:\WebServer\Apache2.4\conf\extra\ssl\site_wildcard.crt" SSLCertificateKeyFile "C:\WebServer\Apache2.4\conf\extra\ssl\site_wildcard.key" SSLCertificateChainFile "C:\WebServer\Apache2.4\conf\extra\ssl\site_wildcard.ca-bundle" SSLCACertificateFile "C:\WebServer\Apache2.4\conf\extra\ssl\addtrustexternalcaroot.crt" </VirtualHost> <VirtualHost 127.0.0.1:443> ServerName sub.site.co.uk ServerAlias sub.site.co.uk DocumentRoot C:\WebServer\Apache2.4\htdocs\sub.site.co.uk </VirtualHost>
經過大量測試,我原來的評論並沒有解決問題。
證書配置正確。
在 ssllabs.com 等網站上執行測試時,協議和握手結果會隨機不同,即使沒有發生任何配置更改。
使用 OpenSSL 進行測試/驗證,偶爾會產生正確的結果,但大部分時間會導致:
ssl 握手失敗
事實證明,罪魁禍首是我的 httpd.conf 文件中有這個:
AcceptFilter https none
將其註釋掉後,它解決了問題:
#AcceptFilter https none