Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个IP地址和多个虚拟主机的通配符证书(Windows、Apache 2.4.2、OpenSSL 1.0.2e)_Apache_Ssl_Https_Openssl_Virtualhost - Fatal编程技术网

一个IP地址和多个虚拟主机的通配符证书(Windows、Apache 2.4.2、OpenSSL 1.0.2e)

一个IP地址和多个虚拟主机的通配符证书(Windows、Apache 2.4.2、OpenSSL 1.0.2e),apache,ssl,https,openssl,virtualhost,Apache,Ssl,Https,Openssl,Virtualhost,我搜索了又搜索,但我找不到解决我问题的方法,因此,如果这听起来很熟悉,我深表歉意,但我不知所措 我有: Windows环境 Apache 2.4.2 OpenSSL 1.0.2e 一个IP地址(开发框:127.0.0.1) 多个虚拟主机(www.site.co.uk、sub.site.co.uk等) 来自Comodo的正版域验证通配符证书 我需要对所有虚拟主机使用通配符证书 使用标准http over端口80时,所有站点都可以正常工作 当我启用httpd-ssl.conf时,我开始遇到麻烦

我搜索了又搜索,但我找不到解决我问题的方法,因此,如果这听起来很熟悉,我深表歉意,但我不知所措

我有:

  • Windows环境
  • Apache 2.4.2
  • OpenSSL 1.0.2e
  • 一个IP地址(开发框:127.0.0.1)
  • 多个虚拟主机(www.site.co.uk、sub.site.co.uk等)
  • 来自Comodo的正版域验证通配符证书
我需要对所有虚拟主机使用通配符证书

使用标准http over端口80时,所有站点都可以正常工作

当我启用httpd-ssl.conf时,我开始遇到麻烦

我已经看过并尝试过几个http-ssl.conf配置示例,但都会导致间歇性连接失败,例如Firefox:“安全连接失败”,IE11:“无法显示此页面”但是,如果我刷新页面(在每个浏览器中),页面将显示,并且我可以看到证书有效

从我读到的内容来看,它指出http-ssl.conf的配置不正确,但我尝试了Mozilla ssl配置生成器(),给出了许多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"
</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>
AcceptFilter https none
收听443 https
SSLStrictSNIVHostCheck off
SSLPassPhraseDialog内置
SSLSessionCache“shmcb:C:/Apache2.4/logs/ssl_scache(512000)”
SSLSessionCacheTimeout 300
SSLProtocol All-SSLv2-SSLv3
SSLCipherSuiteECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-AES256-GCM-SHA384:ECDHE-ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDHE-128-SHA256-ESA256-RSA-ECAESSA-DHE-384:RSA-ECAESSA-ES128-DHE-DHE-SA128-DHE-DHE-DHE-SA128-DHE-DHE-DHE-SA128-384:-ECDSA-AES256-SHA384:ECDHE-ECDSA-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:AES256-CBC3-SA256:AES256-CBC3-DES:AESSA:!决策支持系统
服务器名www.site.co.uk
ServerAlias www.site.co.uk
DocumentRoot C:\WebServer\Apache2.4\htdocs\www.site.co.uk
斯伦金安
SSLCertificateFile“C:\WebServer\Apache2.4\conf\extra\ssl\site\u wildcard.crt”
SSLCertificateKeyFile“C:\WebServer\Apache2.4\conf\extra\ssl\site\u wildcard.key”
SSLCertificateChainFile“C:\WebServer\Apache2.4\conf\extra\ssl\site\u wildcard.ca bundle”
ServerName sub.site.co.uk
ServerAlias sub.site.co.uk
DocumentRoot C:\WebServer\Apache2.4\htdocs\sub.site.co.uk

经过大量测试,我最初的评论并没有解决问题

证书配置正确

在ssllabs.com等网站上运行测试时,协议和握手结果会随机不同,即使没有发生配置更改

使用OpenSSL进行测试/验证时,偶尔会产生正确的结果,但大部分时间会导致:

ssl握手失败

事实证明,罪魁祸首是我在httpd.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>
AcceptFilter https none
经过评论,它解决了这个问题:

#AcceptFilter https none

Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请参阅。您还应该提供真实的信息,如服务器的真实URL;而不是伪造信息<代码>openssl s_客户端-连接www.site.co.uk:443-tls1-servername www.site.co.uk执行良好。您的服务器怎么样?@Tom该站点仍在开发中,因此在沙盒服务器上进行测试。