Auf meinen Webservern tritt ein zufälliger 502-Fehler auf.
Rate: 0,5 %
Fehler in meinen Protokollen: SSL-Bibliotheksfehler: 336151568 Fehler: 14094410: SSL-Routinen: SSL3_READ_BYTES: sslv3-Warnungs-Handshake-Fehler
OpenSSL-Version: OpenSSL 1.0.0-fips 29. März 2010
Netzwerk Ich kann keine Bilder posten, daher hier ein Link zum Schema meines Netzwerks: https://i.stack.imgur.com/oOOnL.jpg und das gleiche Bild bei einem anderen Hoster:http://s28.postimg.org/q9012t8l7/error502.jpg
Ein paar Details:
Ich hoste JEE-Anwendungen auf einem Tomcat 7.0.37
Wenn jemand versucht, eine Verbindung zu einer dieser Anwendungen herzustellen, stellt er eine Verbindung zur externen IP meines Routers her. Der Router leitet ihn zu meiner DMZ weiter.
Apache-Konfiguration in der DMZ
<VirtualHost *:443>
ServerName www.myapp.fr
ServerAlias myapp.fr
RedirectMatch ^/$ /CRA
ProxyRequests Off
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/ssl/certs/www.myapp.fr.pem
ProxyPass / https://myapp.fr/
ProxyPassReverse / https://myapp.fr/
LogLevel info
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/myapp.fr/SSL.myapp.fr_access.%Y-%m-%d.log 5M" combined
ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/myapp.fr/SSL.myapp.fr_error.%Y-%m-%d.log 5M"
</VirtualHost>
Myapp.fr ist in /etc/hosts als 192.168.1.51 definiert, die IP eines Webservers
Die DMZ verwendet ProxyPass zu diesem Webserver. Dieser Webserver wird für ProxyPass zum echten Anwendungsserver verwendet.
Apache-Konfiguration auf dem Webserver
<VirtualHost *:443>
ServerName myapp.fr
RedirectMatch ^/$ https://myapp.fr/Collaborateurs/
ProxyRequests Off
SSLCertificateFile /etc/ssl/certs/www.myapp.fr.pem
SSLProxyEngine On
SSLEngine on
ProxyPass /Collaborateurs/ https://ApplicationServer:8443/Collaborateurs/
ProxyPassReverse /Collaborateurs/ https://ApplicationServer:8443/Collaborateurs/
LogLevel info
CustomLog "|/usr/sbin/rotatelogs ${APACHE_LOG_DIR}/myapp/SSL.myapp.fr_access.%Y-%m-%d.log 5M" combined
ErrorLog "|/usr/sbin/rotatelogs ${APACHE_LOG_DIR}/myapp/SSL.myapp.fr_error.%Y-%m-%d.log 5M"
</VirtualHost>
Hier ist das Problem. Manchmal erscheint in meinen Protokollen ein zufälliger Fehler, der einem Bad-Gateway-Fehler (502) für den Benutzer entspricht.
Protokolle von /var/log/httpd/myapp.fr/SSL.myapp.fr_error.%Y-%m-%d.log:
[Mon Dec 23 08:58:31 2013] [info] Seeding PRNG with 136 bytes of entropy
[Mon Dec 23 08:58:31 2013] [info] Initial (No.1) HTTPS request received for child 11 (server myapp.fr:443)
[Mon Dec 23 08:58:31 2013] [info] [client 192.168.1.52] Connection to child 0 established (server myapp.fr:443)
[Mon Dec 23 08:58:31 2013] [info] Seeding PRNG with 136 bytes of entropy
[Mon Dec 23 08:58:31 2013] [info] [client 192.168.1.52] SSL Proxy connect failed
[Mon Dec 23 08:58:31 2013] [info] SSL Library Error: 336151568 error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
[Mon Dec 23 08:58:31 2013] [info] [client 192.168.1.52] Connection closed to child 0 with abortive shutdown (server myapp.fr:443)
[Mon Dec 23 08:58:31 2013] [error] (502)Unknown error 502: proxy: pass request body failed to 192.168.1.52:8443 (ApplicationServer.domain.lan)
[Mon Dec 23 08:58:31 2013] [error] proxy: pass request body failed to 192.168.1.52:8443 (ApplicationServer.red.lan) from 10.0.0.2 ()
Hier sind dieselben Protokolle, wenn kein Fehler auftritt:
[Mon Dec 23 09:08:30 2013] [info] Initial (No.1) HTTPS request received for child 8 (server myapp.fr:443)
[Mon Dec 23 09:08:30 2013] [info] Initial (No.1) HTTPS request received for child 0 (server myapp.fr:443)
[Mon Dec 23 09:08:30 2013] [info] [client 192.168.1.52] Connection to child 0 established (server myapp.fr:443)
[Mon Dec 23 09:08:30 2013] [info] Seeding PRNG with 136 bytes of entropy
[Mon Dec 23 09:08:31 2013] [info] Initial (No.1) HTTPS request received for child 3 (server myapp.fr:443)
[Mon Dec 23 09:08:31 2013] [info] [client 192.168.1.52] Connection to child 0 established (server myapp.fr:443)
[Mon Dec 23 09:08:31 2013] [info] Seeding PRNG with 136 bytes of entropy
Ich verstehe nicht, warum dieser Fehler auftritt. Hat jemand eine Idee? Danke für den eventuellen Hinweis – und entschuldigen Sie mein schlechtes Englisch :D
Antwort1
Wenn die SSL-Proxy-Verbindung fehlschlägt, bedeutet dies, dass es vor Abschluss des SSL-Handshakes zu einem Netzwerkfehler zwischen Ihrem Webserver und Ihrem Anwendungsserver gekommen ist. Ohne Paketverfolgungen (und eine Menge mehr) von Ihrem Netzwerk ist es nahezu unmöglich, genau herauszufinden, warum die TCP-Verbindung fehlgeschlagen ist. Ich würde jedoch nach Netzwerküberlastungen oder sehr hoher Auslastung des Anwendungsservers zum Zeitpunkt der Fehler suchen.
Antwort2
Das Problem war die Hyper-V-Integration:
Das Aktualisieren der Linux-Integrationskomponenten von 3.4 auf 3.5 auf dem Proxyserver hat das Problem gelöst.