SSL Apache Proxy com nome de host não está funcionando

1

Decidimos executar um proxy da Web seguro por meio do apache. nós atribuímos ao servidor um nome de domínio e, em seguida, compramos o certificado SSL para esse domínio e depois aplicamos no Ubuntu 12.04 (preciso) com o Apache / 2.2.22.

Quando eu executei o servidor no site padrão (HTTP), ou seja, apenas com IP como virtualhost, o proxy funcionou bem.

Então decidi fazer SSL para esse servidor proxy, já que o SSL para o endereço IP não é permitido, escolhemos um domínio e, portanto, fomos em frente.

Também habilitei o mod_rewrite, para que todas as solicitações HTTP passem pelo site SSL

Aqui está meu host virtual HTTP e a confirmação de host virtual SSL, respectivamente,

<VirtualHost 12.12.12.12:80>
    ServerAdmin webmaster@localhost
    ServerName example.net
    ServerAlias www.example.net
    ProxyRequests On
    ProxyVia On
    <Proxy *>
    Order allow,deny
    Deny from all
    Allow from 104.12
    </Proxy>
    RewriteEngine   on
    RewriteCond     %{SERVER_PORT} ^80$
    RewriteRule     ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
    DocumentRoot /var/www
    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel debug

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
   AllowOverride None
    Order deny,allow
    Deny from all
   Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

Configuração SSL

    <IfModule mod_ssl.c>
     <VirtualHost  12.12.12.12:443>
        ServerAdmin webmaster@localhost
        ServerName example.net
        ServerAlias www.example.net
        ProxyVia On
        ProxyPass / https://127.0.0.1:443/
        ProxyPreserveHost On
        SSLProxyCheckPeerCN off
        #ProxyPreserveHost on
        ProxyRequests On
        SSLEngine on
        SSLProxyEngine On
        SSLCertificateFile    /etc/ssl/ssl_proxy/example_net.crt
        SSLCertificateKeyFile /etc/ssl/ssl_proxy/example.net.key
        SSLProxyVerify require
        SSLProxyVerifyDepth 10
        SSLProxyMachineCertificateFile /etc/ssl/ssl_proxy/example.net.csr
        SSLProxyCACertificateFile /etc/ssl/ssl_proxy/example_net.ca-bundle
        SSLStrictSNIVHostCheck on
        DocumentRoot /var/www
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
        <Proxy *>
        Order allow,deny
        Deny from all
        Allow from 104.12
        </Proxy>
        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
                Options Indexes MultiViews FollowSymLinks
                AllowOverride None
                Order deny,allow
                Deny from all
                Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory> 
        BrowserMatch "MSIE [2-6]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
        # MSIE 7 and newer should be able to use keepalive
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>

Eu tentei todas as opções de possibilidades acima, mas nenhuma funcionou. Então, sempre que eu acessar um site, recebo o erro

Hostname example.net provided via SNI and hostname yahoo.com provided via HTTP are different.

Qualquer ideia do que estou fazendo errado?

Obrigado Sai

    
por Saikrishna 14.04.2014 / 12:46

2 respostas

0

Tudo que eu descobri é que isso não é possível através do apache. Mas servidores modernos como Nginx, Node.js suportam via protocolo SPDY, Aqui está o link

    
por 22.04.2014 / 12:53
0

Houve um bug no Apache que causou esse erro devido a um caso comparação sensível de nomes de host. Foi corrigido recentemente e uma nova compilação com a correção está agora disponível . Além disso, você pode ter o certificado alterado para todas as minúsculas para ser mais compatível com a convenção (maiúsculas raramente são usadas).

    
por 21.04.2014 / 19:18