Proxy: Fehler AH00898: Fehler beim SSL-Handshake mit Remote-Server

16

Ich habe einen Server, der als Front-End für einen cPanel-Mailserver in einem Netzwerk fungiert. Der Apache-Proxy auf dem Front-End-Server lief 152 Tage ohne Fehler, dann bekomme ich plötzlich 500/502 Fehler, wenn ich ihn für den Zugriff auf die Webmail-Clients des Mailservers verwende.

Der Front-End-Server verwendet ein signiertes SSL-Zertifikat, der cPanel-Server verwendet ein selbstsigniertes Zertifikat. Hier ist das Fehlerprotokoll, das vom Front-End-Server ausgegeben wurde, als es zum ersten Mal auftrat:

[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

Der Front-End-Server ist eine EC2-Instanz, auf der das Apache/2.4.6 (Amazon) My VirtualHost-Setup für den Proxy auf diesem Server wie folgt ausgeführt wird:

< 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>

Soweit ich denken kann, hat sich auf dem Front-End-Server nichts geändert, ich habe kein Update durchgeführt oder so, als ich dieses Problem bemerkte und erfolglos herumfummelte, habe ich auf beiden Servern einen Neustart versucht, aber nichts getan, um dies zu beheben.

Irgendwelche Vorschläge?

DePages
quelle

Antworten:

31

Kam über das gleiche Problem mit der Serverversion: Apache / 2.4.6

Gemäß der Dokumentation unter [1] " In 2.4.5 und höher wurde SSLProxyCheckPeerCN durch SSLProxyCheckPeerName ersetzt, und seine Einstellung wird nur berücksichtigt, wenn SSLProxyCheckPeerName off gleichzeitig angegeben wird ."

Das Hinzufügen des folgenden Eintrags hat also den Trick gemacht:

SSLProxyCheckPeerName aus

So sieht meine Arbeitskonfiguration aus wie ...

    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
quelle
1
Beachten Sie, dass "SSLEngine On" sich nicht mit dem Proxy-Teil der Konfiguration befasst, sondern mit dem Versenden dieser Anfrage über SSL / TLS, obwohl es mit den Proxy-Konfigurationsoptionen gruppiert ist.
Perseids
14

Wenn der Back-End-Server ein veraltetes selbstsigniertes Zertifikat verwendet, ist eine weitere Option erforderlich (falls kein Zugriff auf den Back-End-Server besteht):

SSLProxyCheckPeerExpire off
Milan Kerslager
quelle
Dies funktionierte für mich bei der Migration eines Reverse-Proxys von Apache 2.2 auf 2.4
Segolas