proxy: erro AH00898: Erro durante o handshake SSL com servidor remoto

16

Eu tenho um servidor que atua como um front-end para um servidor de correio cPanel em uma rede. O proxy apache no servidor front-end funcionou por 152 dias sem falhas e, de repente, agora recebo erros 500/502 ao usá-lo para acessar os clientes de webmail do servidor de correio.

O servidor front-end usa um certificado SSL assinado, o servidor cPanel está usando um certificado autoassinado. Aqui está a saída do log de erros do servidor front-end quando começou a acontecer:

[Tue Sep 10 18:22:52.959291 2013] [proxy:error] [pid 19531] (502)Unknown error 502: [client 173.xx.xx.xx:9558] AH01084: pass request body failed to 184.xx.xx.xx:2096 (184.xx.xx.xx), referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX

[Tue Sep 10 18:22:52.959469 2013] [proxy:error] [pid 19531] [client 173.xx.xx.xx:9558] AH00898: Error during SSL Handshake with remote server returned by /cpsess12385596/3rdparty/roundcube/, referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX

O servidor front-end é uma instância do EC2 que está executando a Apache/2.4.6 (Amazon) instalação do My VirtualHost para o proxy neste servidor:

< VirtualHost *:2096> ServerName domain.com

SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off

SSLCertificateFile /x/x/x/domain.com.crt
SSLCertificateKeyFile /x/x/x/domain.com.key
SSLCACertificateFile /x/x/x/domain.com.cabundle

ProxyPass / https://184.xx.xx.xx:2096/
ProxyPassReverse / https://184.xx.xx.xx:2096/
ProxyPassReverseCookieDomain 184.xx.xx.xx:2096 domain.com
ProxyPassReverseCookiePath / /

SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLURLMap https://184.xx.xx.xx:2096 /

< /VirtualHost>

Tanto quanto eu posso pensar que nada mudou no servidor front-end, não fiz uma atualização ou qualquer coisa. Uma vez percebendo esse problema e mexendo sem sucesso, tentei reiniciar nos dois servidores, mas não fez nada para corrigir isso.

Alguma sugestão?

DePages
fonte

Respostas:

32

Me deparei com o mesmo problema com a versão do servidor: Apache / 2.4.6

Conforme a documentação em [1], " No 2.4.5 e posterior, o SSLProxyCheckPeerCN foi substituído pelo SSLProxyCheckPeerName, e sua configuração é levada em consideração apenas quando SSLProxyCheckPeerName desativado é especificado ao mesmo tempo ."

Então, adicionar a seguinte entrada fez o truque:

SSLProxyCheckPeerName desativado

Então, minha configuração de trabalho se parece com ...

    ProxyRequests Off

    SSLEngine On
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off

    SSLCertificateFile /x/x/keys/server.crt
    SSLCertificateKeyFile /x/x/keys/server.key

[1] http://httpd.apache.org/docs/2.4/mod/mod_ssl.html

Pavithra Madurangi
fonte
1
Observe que "SSLEngine On" não está preocupado com a parte de proxy da configuração, mas com o atendimento dessa solicitação via SSL / TLS, mesmo que esteja agrupado com as opções de configuração de proxy.
Perseids
14

Se o servidor back-end usar certificado autoassinado desatualizado, será necessária mais uma opção (se não houver acesso ao servidor back-end):

SSLProxyCheckPeerExpire off
Milan Kerslager
fonte
Isso funcionou para mim migração de um proxy reverso do Apache 2.2 a 2.4
Segolas