Um endereço IP e um certificado curinga para vários hosts virtuais (Windows, Apache 2.4.2, OpenSSL 1.0.2e)

2

Eu pesquisei e pesquisei, mas não consigo encontrar uma solução para o meu problema, por isso peço desculpas se isso soa familiar, mas estou perplexo.

Eu tenho:

  • Ambiente do 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 por domínio genuíno do Comodo

Eu preciso usar o certificado curinga para todos os meus hosts virtuais.

Eu testei o site / certificado usando o openssl e verifiquei tudo bem.

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 de http-ssl.conf mas todos resultam em falhas de conexão intermitentes, isto é, Firefox: " Conexão segura falhou ", IE11: " Esta página não pode ser exibido ". 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 eu li, ele aponta para configuração incorreta do http-ssl.conf, mas eu tentei o Gerador de Configuração SSL da Mozilla ( link ), muitas respostas de stackoverflow, mas ainda não há 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>
    
por JustBaron 24.03.2016 / 11:53

2 respostas

1

Depois de muitos testes, meu comentário original não resolveu o problema.

O certificado foi configurado corretamente.

Ao executar testes em sites como o ssllabs.com, os resultados de protocolo e handshake seriam aleatoriamente diferentes, mesmo que nenhuma alteração de configuração tenha ocorrido.

Teste / Verfiying com o OpenSSL, produziu esporadicamente o resultado correto, mas a maior parte do tempo resultou em:

ssl handshake failed

Acontece que o culpado foi que eu tive isso no meu arquivo httpd.conf:

AcceptFilter https none

Depois de comentar, resolveu o problema:

#AcceptFilter https none
    
por 12.07.2016 / 15:03
0

quando eu interpreto o direito de configuração, você configura seus V-Hosts para a interface local. Quando você deseja veicular as páginas corretamente, é necessário definir os hosts para IPs acessíveis:

<VirtualHost 0.0.0.0:443>
ServerName  www.site.co.uk
ServerAlias www.site.co.uk
...
</VirtualHost>

ou para o IP dos seus servidores (por exemplo, 192.168.23.4)

<VirtualHost 192.168.23.4:443>
ServerName  www.site.co.uk
ServerAlias www.site.co.uk
...
</VirtualHost>

Talvez isso corrija seus problemas.

Update: Minha configuração se parece com isso (sistema linux)

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin     [email protected]
        ServerName      www.foo.bar.com
        ServerAlias     foo.bar.com
        DocumentRoot    /var/www/foo
        SSLEngine on
        SSLProtocol TLSv1
        SSLHonorCipherOrder On
        SSLCipherSuite RC4-SHA:HIGH:!ADH

        SSLCertificateChainFile         /etc/apache2/ssl/2015/intermediate.crt
        SSLCertificateFile              /etc/apache2/ssl/2015/public.crt
        SSLCertificateKeyFile           /etc/apache2/ssl/private.open.key
</VirtualHost>
<VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName      www.bar.com
        ServerAlias     bar.com
        DocumentRoot /var/www/bar

        SSLEngine on
        SSLProtocol TLSv1
        SSLHonorCipherOrder On
        SSLCipherSuite RC4-SHA:HIGH:!ADH

        SSLCertificateChainFile         /etc/apache2/ssl/2015/intermediate.crt
        SSLCertificateFile              /etc/apache2/ssl/2015/public.crt
        SSLCertificateKeyFile           /etc/apache2/ssl/private.open.key

...
</VirtualHost>
</IfModule>
    
por 24.03.2016 / 13:07