多个虚拟主机的一个 IP 地址和通配符证书(Windows、Apache 2.4.2、OpenSSL 1.0.2e)
One IP Address and Wildcard Certificate for multiple Virtual Hosts (Windows, Apache 2.4.2, OpenSSL 1.0.2e)
我搜索了又搜索,但找不到解决我的问题的方法,如果这听起来很熟悉,我深表歉意,但我不知所措。
我有:
- Windows环境
- 阿帕奇 2.4.2
- OpenSSL 1.0.2e
- 一个IP地址(开发盒:127.0.0.1)
- 多个虚拟主机(www.site.co.uk、sub.site.co.uk 等)
- 来自 Comodo 的真实域验证通配符证书
我需要为我的所有虚拟主机使用通配符证书。
在端口 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/),许多 Whosebug 答案,但是还是不开心。
这是我当前的 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"
</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 这样的网站上,协议和握手结果会随机不同,即使没有发生配置更改。
Testing/Verfiying 使用 OpenSSL,偶尔会产生正确的结果,但大部分时间会导致:
ssl handshake failed
原来罪魁祸首是我的 httpd.conf 文件中有这个:
AcceptFilter https none
注释掉后,问题解决:
#AcceptFilter https none
我搜索了又搜索,但找不到解决我的问题的方法,如果这听起来很熟悉,我深表歉意,但我不知所措。
我有:
- Windows环境
- 阿帕奇 2.4.2
- OpenSSL 1.0.2e
- 一个IP地址(开发盒:127.0.0.1)
- 多个虚拟主机(www.site.co.uk、sub.site.co.uk 等)
- 来自 Comodo 的真实域验证通配符证书
我需要为我的所有虚拟主机使用通配符证书。
在端口 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/),许多 Whosebug 答案,但是还是不开心。
这是我当前的 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"
</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 这样的网站上,协议和握手结果会随机不同,即使没有发生配置更改。
Testing/Verfiying 使用 OpenSSL,偶尔会产生正确的结果,但大部分时间会导致:
ssl handshake failed
原来罪魁祸首是我的 httpd.conf 文件中有这个:
AcceptFilter https none
注释掉后,问题解决:
#AcceptFilter https none