SSL-Verbindungsfehler von Apache


8

Ich verwende eine (selbstsignierte) SSL-Zertifizierungssite unter Apache / 2.2.14 unter Ubuntu 10.04, aber verschiedene Browser geben bei der Hälfte der Verbindungsversuche Fehler aus. Ich habe gerade diesen vorübergehenden Fehler von Chrome gesehen:

"Error 126 (net::ERR_SSL_BAD_RECORD_MAC_ALERT): Unknown error."

Wenn Sie auf Aktualisieren klicken, verschwindet das Problem für eine Weile.

wget auch:

$ wget --no-check-certificate https://dev.foo.com/deps/
--2010-09-08 19:30:26--  https://dev.foo.com/deps/
Resolving dev.foo.com... 184.72.53.220
Connecting to dev.foo.com|184.72.53.220|:443... connected.
OpenSSL: error:0407006A:rsa
routines:RSA_padding_check_PKCS1_type_1:block type is not 01
OpenSSL: error:04067072:rsa routines:RSA_EAY_PUBLIC_DECRYPT:padding check failed
OpenSSL: error:1408D07B:SSL routines:SSL3_GET_KEY_EXCHANGE:bad signature
Unable to establish SSL connection.

Führen Sie es sofort wieder aus und es funktioniert:

$ wget --no-check-certificate https://dev.foo.com/deps/
--2010-09-08 19:30:29--  https://dev.foo.com/deps/
    Resolving dev.foo.com... 184.72.53.220
Connecting to dev.foo.com|184.72.53.220|:443... connected.
WARNING: cannot verify dev.foo.com's certificate, issued by
`/CN=dev.foo.com':
 Self-signed certificate encountered.
HTTP request sent, awaiting response... 200 OK
Length: 3157 (3.1K) [text/html]
Saving to: `index.html'

100%[======================================>] 3,157       --.-K/s   in 0s

2010-09-08 19:30:29 (48.6 MB/s) - `index.html' saved [3157/3157]

In meinen sites-enabled / default-ssl:

SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Das Zertifikat:

-----BEGIN CERTIFICATE-----
MIIBszCCARwCCQCa0TzNwqLgsTANBgkqhkiG9w0BAQUFADAeMRwwGgYDVQQDExNk
ZXYucGFydHlvbmRhdGEuY29tMB4XDTEwMDgyNzA2MzA1N1oXDTIwMDgyNDA2MzA1
N1owHjEcMBoGA1UEAxMTZGV2LnBhcnR5b25kYXRhLmNvbTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAzXDEULpCUqIc9hV/ESFapkckR2uoYINA81DvG2aQZ9Ot
Q30OwX2ae2CC4bSzJEIVlahU8vjVrWpmpa28NEhQbqh4ywwbl1XDrEVYI6Gkfimf
snJhOKyaVrEhlwutYtBjmsz3ZIqwymMPm/6smVcSS5dJIynlSmtltxX6ivPcO8UC
AwEAATANBgkqhkiG9w0BAQUFAAOBgQBGxHVkpSSOnZjzuySRepjhAlV/yhe9Fx23
fh12WrjQMEi98B7JEuNSLXDWckUN7O6XRc3RzKmazcGHJqzhn0Ov6gAmAE2XjZ/x
VW21xmaLwk+KgYKFJbJJaP3jMSpU7I3aa11wqAkR2Zd4Nkm9N0YXYIzcBdfztTVI
Et8mEHBFdg==
-----END CERTIFICATE-----

Das Zertifikat wird wiederum generiert über:

$ make-ssl-cert generate-default-snakeoil --force-overwrite

Apache-Version.

$ apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Apr 13 2010 20:22:19
Server's Module Magic Number: 20051115:23
Server loaded:  APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Worker
 threaded:     yes (fixed thread count)
   forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/worker"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT=""
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

Ich verwalte das Netzwerk, die Hardware usw. nicht - alles läuft auf Amazon EC2. Ich führe keinen Load-Balancer oder etwas anderes vor dem Server aus. Ich stelle direkte TCP-Verbindungen zu diesem Host (AFAIK) her.

Irgendwelche Ideen? Vielen Dank im Voraus für jede Hilfe.


Haben Sie versucht, das eigentliche Zertifikat zu entfernen? Dann ein völlig neues mit einem anderen Namen erstellen, NICHT mit der Option --force-overwrite?
NcA

Aus welchem ​​Land kommst du? Gibt es mehr als eine IP oder einen Server für diesen Domainnamen / Webserver? Was passiert, wenn Sie openssl s_client -connect host:port -showcertsfünf Mal hintereinander ähnliche Fehlermeldungen erhalten? Erhalten Sie bei jedem der fünf Läufe die gleichen Fehler?
Ram

Antworten:


2

Das Problem, das Sie haben, ist, dass zeitweise die Signatur der vom Browser empfangenen Nachricht falsch ist.

Dies kann aus einer Vielzahl von Gründen geschehen. Beispielsweise tritt möglicherweise ein OpenSSL-Fehler, ein Hardwarefehler (fehlerhafter RAM oder CPU) oder eine Art ungewöhnlicher Zufall mit Ihrem Schlüssel auf (astronomisch unwahrscheinlich). Möglicherweise erfahren Sie genau, was der MAC erkennen soll: Auf dem Weg dorthin manipuliert möglicherweise jemand Ihren Datenverkehr.

Da Ihr Zertifikat selbst signiert ist, ersetzen Sie es, starten Sie Apache neu und fahren Sie fort, nur als Schritt zur Fehlerbehebung. Wenn dies nicht funktioniert, überprüfen Sie, ob Sie die neueste Version von openssl ausführen (oder ändern Sie einfach die openssl-Version zum Spaß). Wenn Sie immer noch MAC-Fehler erhalten, untersuchen Sie, ob ein Hardwarefehler oder eine Netzwerkmanipulation vorliegt.

Dieser Teil des Fehlers ist besonders aufschlussreich:

OpenSSL: error:04067072:rsa routines:RSA_EAY_PUBLIC_DECRYPT:padding check failed

Dies zeigt an, dass die Nachricht höchstwahrscheinlich von der signierten Version geändert und möglicherweise abgeschnitten wurde.


1

Erstens sind selbstsignierte Zertifikate für Endbenutzer oft schmerzhafter als ein billiges SSL-Zertifikat. Ich empfehle nicht, sie zu verwenden, wenn Sie eine öffentliche Schnittstelle oder sogar eine große Anzahl interner Benutzer haben. Broswers werden bei selbstsignierten Zertifikaten zunehmend strenger, indem sie ihnen das Standardvertrauen verweigern.

Zweitens gibt es mehrere verschiedene Vertrauensspeicher auf einem Computer.

Linux verwendet im Allgemeinen NSS (Mozilla), aber alternative Browser haben möglicherweise auch eigene Trust Stores.

Es ist möglich, dass für ein Zertifikat die falschen OIDs usw. festgelegt sind. Das tatsächliche Zertifikat muss angezeigt werden. PKIs sind für Zertifikate nicht wirklich vertraulich - nur für private Schlüssel.

Bitte verwenden Sie http://pkif.sourceforge.net/pitt.html und teilen Sie uns mit, welche Fehler Sie haben oder nicht haben.

Vielen Dank.


-2

Ich bin kein Programmierer, also sei bitte nachsichtig mit mir :)

Vor ein paar Tagen habe ich ein Problem mit dem Zugriff auf mein Google Mail-Konto mit Fehler 126 (net :: ERR_SSL_BAD_RECORD_MAC_ALERT) in Chrome. Vielleicht ist dein Problem meinem ähnlich?! Ich habe also einen Beitrag gefunden http://www.luvfree.com/forums/general_discussion/i_cannot_access_to_my_gmailcom_error_126_neterr_ssl_bad_record_mac_alert_in_chro.htm Diese Dating-Site luvfree.com hilft mir.

Vielleicht dein Problem auch im Router.

Die Lösung für dieses Problem war das Aktualisieren der Firmware im Router.


Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Mark Henderson

Der Link könnte auch NSFW sein.
Burhan Khalid

-3

Viele Dinge könnten schief gehen. Ich glaube nicht, dass jemand darauf antworten kann, ohne Ihre Netzwerkkonfiguration zu kennen und wie Apache konfiguriert ist, wie der Lastausgleich durchgeführt wird und welche Art von Round-Robin verwendet wird sowie andere Hardwareaspekte Ihres Netzwerks.

Für mich sieht es so aus, als würde beim SSL-Hostnamen-Validator eine unerwartete Antwort angezeigt, die nicht mit dem Hostnamen übereinstimmt.


Ich verwalte das Netzwerk, die Hardware usw. nicht - alles läuft auf Amazon EC2. Ich führe keinen Load-Balancer oder etwas anderes vor dem Server aus. Ich stelle direkte TCP-Verbindungen zu diesem Host (AFAIK) her. Hinzufügen dieser Informationen zu meiner Frage.
Yang

1
Ein SSL-MAC hat absolut nichts mit einem Netzwerk-MAC zu tun.
Falcon Momot
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.