Erros de conexão SSL do Apache

8

Estou executando um site de certificado SSL (auto-assinado) no Apache / 2.2.14 no Ubuntu 10.04, mas vários navegadores estão dando erros na metade da conexão tentativas. Acabo de ver este erro temporário do Chrome:

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

Acerte a atualização e o problema desaparece por um tempo.

wget também:

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

Execute imediatamente e funciona:

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

Em meus sites habilitados / default-ssl:

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

O certificado:

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

O certificado é gerado por meio de:

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

Versão do 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"

Eu não administro a rede, o hardware, etc. - tudo isso está sendo executado no Amazon EC2. Eu não estou executando um balanceador de carga ou qualquer outra coisa na frente do servidor. Estou fazendo conexões TCP diretas para esse host (AFAIK).

Alguma ideia? Agradecemos antecipadamente por qualquer ajuda.

    
por Yang 09.09.2010 / 20:11

4 respostas

2

O problema que você está tendo é que, de forma intermitente, a assinatura da mensagem recebida pelo navegador está errada.

Isso pode acontecer por um grande número de razões. Por exemplo, você pode estar experimentando um bug openssl, uma falha de hardware (RAM ou CPU ruim), algum tipo de coincidência estranha com a sua chave (astronomicamente improvável). Ou, você pode estar experimentando exatamente o que o MAC foi projetado para detectar: alguém pode estar adulterando sua rota de tráfego.

Como o seu certificado é auto-assinado, vá em frente e substitua-o, reinicie o apache e continue, apenas como uma etapa de solução de problemas. Se isso não funcionar, verifique se você está executando a versão mais recente do openssl (ou apenas altere a versão openssl para se divertir). Se você ainda tiver erros de MAC, investigue se você tem uma falha de hardware ou adulteração de rede.

Esta parte do erro é particularmente reveladora:

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

Isso indica que, provavelmente, a mensagem foi modificada a partir da versão que foi assinada e possivelmente truncada.

    
por 23.06.2013 / 05:37
1

Primeiro, os certificados auto-assinados costumam ser mais problemáticos do que um certificado SSL barato para usuários finais. Eu não recomendo usá-los se você tiver qualquer tipo de interface pública ou até mesmo um grande número de usuários internos. Os Broswers estão ficando cada vez mais rigorosos em certificados autoassinados, negando a eles a confiança padrão.

Em segundo lugar, existem vários armazenamentos confiáveis em uma máquina.

O Linux usa o NSS geralmente (mozilla), mas os navegadores alternativos também podem ter seus próprios repositórios confiáveis.

É possível que um certificado tenha os OIDs incorretos definidos, etc. Precisamos ver o certificado real. As PKIs não têm realmente confidencialidade para certificados - apenas para chaves privadas.

Por favor, use o link e diga-nos quais erros você tem, ou não tem.

Obrigado.

    
por 22.06.2012 / 19:05
-2

Eu não sou programador, então seja gentil comigo:)

Um dia atrás, tive problemas com o acesso à minha conta do Gmail com o Erro 126 (net :: ERR_SSL_BAD_RECORD_MAC_ALERT) no Chrome. Talvez o seu problema seja semelhante ao meu ?! Então eu tenho encontrado post link Este é o site de encontros luvfree.com mas eles me ajudam.

Talvez o seu problema também no roteador.

A correção para esse problema foi atualizar o firmware no roteador.

    
por 11.09.2012 / 19:02
-3

Muitas coisas podem estar dando errado. Eu não acho que alguém possa responder isso sem saber sua configuração de rede e como o Apache está configurado, como o balanceamento de carga está sendo feito, e que tipo de round-robin está usando, assim como outros aspectos de hardware da sua rede. >

Para mim, parece que, no validador de nome de host SSL, está obtendo uma resposta inesperada que não corresponde ao nome do host?

    
por 04.08.2011 / 20:17