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

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

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 lang fehlerfrei, dann bekomme ich plötzlich 500/502-Fehler, wenn ich ihn verwende, um auf die Webmail-Clients des Mailservers zuzugreifen.

Der Front-End-Server verwendet ein signiertes SSL-Zertifikat, der cPanel-Server verwendet ein selbst signiertes Zertifikat. Hier ist die Fehlerprotokollausgabe des Front-End-Servers, als das Problem 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. Apache/2.4.6 (Amazon) Mein VirtualHost-Setup für den Proxy auf diesem Server ist wie folgt:

< 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 weiß, hat sich auf dem Front-End-Server nichts geändert. Ich habe auch kein Update oder ähnliches durchgeführt. Als mir das Problem auffiel und ich erfolglos herumprobierte, versuchte ich einen Neustart auf beiden Servern, aber das hat das Problem nicht behoben.

Irgendwelche Vorschläge?

Antwort1

Dasselbe Problem trat bei der Serverversion auf: 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 dann berücksichtigt, wenn SSLProxyCheckPeerName off gleichzeitig angegeben wird.."

Das Hinzufügen des folgenden Eintrags hat also geholfen:

SSLProxyCheckPeerName aus

So sieht meine Arbeitskonfiguration aus ...

    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

Antwort2

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

SSLProxyCheckPeerExpire off

Antwort3

Ich erhalte auch denselben Fehler, aber in meinem Fall hat die hier akzeptierte Antwort diesen Fehler behoben:https://stackoverflow.com/questions/47718508/apache-proxypass-https-and-remote-server-with-sni

Ich fügte hinzu

ProxyAddHeaders off
ProxyPreserveHost off

Antwort4

Vergessen Sie nicht, den Back-End-Server nach der Erneuerung seiner Zertifikate neu zu starten, falls er nicht erkennt, ob die Zertifikatsdateien aktualisiert wurden. Sie müssen die SSLProxyCheckPeerExpire offDirektive dann nicht mehr setzen.

verwandte Informationen