Pesquisei e pesquisei, mas não consigo encontrar uma solução para o meu problema, então peço desculpas se isso soa familiar, mas estou perdido.
Eu tenho:
- ambiente Windows
- Apache 2.4.2
- OpenSSL 1.0.2e
- um endereço IP (caixa de desenvolvimento: 127.0.0.1)
- vários hosts virtuais (www.site.co.uk, sub.site.co.uk, etc.)
- Certificado curinga validado de domínio genuíno da Comodo
Preciso usar o certificado curinga para todos os meus hosts virtuais.
Testei o site/certificado usando o openssl e verifiquei que está OK.
Todos os sites funcionam bem ao usar o http padrão na porta 80.
Quando habilito o httpd-ssl.conf, começo a ter problemas.
Eu vi e tentei vários exemplos de configurações do http-ssl.conf, mas todos resultaram em falhas de conexão intermitentes, por exemplo, Firefox: " Falha na conexão segura ", IE11: " Esta página não pode ser exibida ". No entanto , se eu atualizar a página (em cada navegador), a página é exibida e posso ver que o certificado é válido.
Pelo que li aponta para configuração incorreta do http-ssl.conf, mas já tentei o Mozilla SSL Configuration Generator ( https://mozilla.github.io/server-side-tls/ssl-config -generator/ ), muitas respostas stackoverflow, mas ainda sem alegria.
Este é o meu arquivo httpd-ssl.conf atual:
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>
Depois de muitos testes, meu comentário original não resolveu o problema.
O certificado foi configurado corretamente.
Ao executar testes, em sites como ssllabs.com, os resultados do protocolo e do handshake diferem aleatoriamente, mesmo que nenhuma alteração de configuração tenha ocorrido.
Testando/verificando com OpenSSL, esporadicamente produziu o resultado correto, mas na maioria das vezes resultou em:
Acontece que o culpado era que eu tinha isso no meu arquivo httpd.conf:
Depois de comentá-lo, resolveu o problema:
quando eu interpreto a configuração corretamente, você define seus V-Hosts para a interface local. Quando você deseja servir as páginas corretamente, você precisa definir os hosts para IPs acessíveis:
ou para o IP do seu servidor (ou seja, 192.168.23.4)
Talvez isso resolva seus problemas.
Atualização: Minha configuração se parece com isso (sistema linux)