Errori di connessione SSL da Apache


8

Sto gestendo un sito cert SSL (autofirmato) su Apache / 2.2.14 su Ubuntu 10.04, ma vari browser stanno dando errori su metà dei tentativi di connessione. Proprio ora ho visto questo errore temporaneo da Chrome:

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

Premi Aggiorna e il problema scompare per un po '.

wget anche:

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

Eseguilo subito e funziona:

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

Nei miei siti abilitati / default-ssl:

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

Il certificato:

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

Il certificato viene a sua volta generato tramite:

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

Versione di Apache.

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

Non gestisco la rete, l'hardware, ecc., Tutto funziona su Amazon EC2. Non sto eseguendo un bilanciamento del carico o qualsiasi altra cosa davanti al server. Sto effettuando connessioni TCP dirette a quell'host (AFAIK).

Qualche idea? Grazie in anticipo per qualsiasi aiuto.


Hai provato a rimuovere il certificato effettivo. Quindi generarne uno completamente nuovo, con un nome diverso, NON usando l'opzione --force-overwrite?
NC

Da quale paese vieni? esiste più di un IP o server per quel nome dominio / web server? Cosa succede se usi openssl s_client -connect host:port -showcertscinque volte di seguito ricevi messaggi di errore simili da wget? Ricevi gli stessi errori in ciascuna delle cinque esecuzioni?
Ram,

Risposte:


2

Il problema che stai riscontrando è che a intermittenza, la firma sul messaggio ricevuto dal browser è errata.

Questo può accadere per un numero molto grande di ragioni. Ad esempio, potresti riscontrare un bug di openssl, un errore hardware (RAM o CPU difettosa), una sorta di strana coincidenza con la tua chiave (astronomicamente improbabile). Oppure potresti riscontrare esattamente ciò che il MAC è progettato per rilevare: qualcuno potrebbe manomettere il tuo traffico durante il tragitto.

Poiché il tuo certificato è autofirmato, vai avanti e sostituiscilo, riavvia apache e continua, proprio come una procedura di risoluzione dei problemi. Se questo non funziona, controlla che stai eseguendo l'ultima versione di openssl (o semplicemente cambia la versione di openssl per divertirti). Se si verificano ancora errori MAC, verificare se si verificano guasti hardware o manomissioni di rete.

Questa parte dell'errore dice in particolare:

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

Ciò indica che molto probabilmente il messaggio è stato modificato dalla versione firmata e probabilmente troncata.


1

Innanzitutto, i certificati autofirmati sono spesso più dolorosi di un certificato SSL economico per gli utenti finali. Non consiglio di usarli se si dispone di qualsiasi tipo di interfaccia pubblica o anche un numero elevato di utenti interni. I broswer stanno diventando sempre più severi sui certificati autofirmati negando loro la fiducia di default.

In secondo luogo, ci sono diversi negozi fiduciari su una macchina.

Linux usa generalmente NSS (mozilla), ma anche i browser alternativi possono avere i loro archivi fiduciari.

È possibile che per un certificato siano impostati OID errati, ecc. È necessario visualizzare il certificato effettivo. I PKI non hanno davvero riservatezza per i certificati, ma solo per le chiavi private.

Si prega di utilizzare http://pkif.sourceforge.net/pitt.html e facci sapere quali errori hai o non hai.

Grazie.


-2

Non sono un programmatore, quindi per favore sii clemente con me :)

Un paio di giorni fa ho avuto problemi con l'accesso al mio account Gmail con Errore 126 (net :: ERR_SSL_BAD_RECORD_MAC_ALERT) in Chrome. Forse il tuo problema è simile al mio ?! Quindi ho trovato post http://www.luvfree.com/forums/general_discussion/i_cannot_access_to_my_gmailcom_error_126_neterr_ssl_bad_record_mac_alert_in_chro.htm Questo sito di incontri luvfree.com ma mi consigliano di aiutarmi.

Forse il tuo problema anche nel router.

La soluzione a questo problema era l'aggiornamento del firmware nel router.


Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Mark Henderson,

Anche il collegamento potrebbe essere NSFW.
Burhan Khalid,

-3

Molte cose potrebbero andare male. Non credo che nessuno possa rispondere a questa domanda senza conoscere la configurazione di rete e come è configurato Apache, come viene eseguito il bilanciamento del carico e che tipo di round robin sta usando, nonché altri aspetti hardware della rete.

Per me, sembra, sul validatore del nome host SSL, sta ottenendo una risposta inaspettata che non corrisponde al nome host?


Non gestisco la rete, l'hardware, ecc., Tutto funziona su Amazon EC2. Non sto eseguendo un bilanciamento del carico o qualsiasi altra cosa davanti al server. Sto effettuando connessioni TCP dirette a quell'host (AFAIK). Aggiungendo queste informazioni alla mia domanda.
Yang,

1
Un MAC SSL non ha assolutamente nulla a che fare con un MAC di rete.
Falcon Momot,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.