Ошибки SSL-соединения от Apache

8

Я использую (самоподписанный) SSL-сертификат на сайте Apache / 2.2.14 на Ubuntu 10.04, но различные браузеры выдают ошибки при половине попыток подключения. Только сейчас увидел эту временную ошибку от Chrome:

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

Нажмите «Обновить», и проблема исчезнет на некоторое время.

Wget тоже:

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

Запустите его прямо сейчас снова, и он работает:

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

На моих сайтах-включен / default-ssl:

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

Сертификат:

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

Сертификат в свою очередь генерируется с помощью:

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

Версия 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"

Я не управляю сетью, оборудованием и т. Д. - все это работает на Amazon EC2. Я не запускаю балансировщик нагрузки или что-то еще перед сервером. Я делаю прямые TCP-соединения с этим хостом (AFAIK).

Любые идеи? Заранее благодарю за любую помощь.

Ян
источник
Вы пытались удалить настоящий сертификат. Затем сгенерировать совершенно новый файл с другим именем, НЕ используя опцию --force-overwrite?
NcA
Из какой страны ты видишь? существует более одного IP-адреса или сервера для этого доменного имени / веб-сервера? Что произойдет, если вы используете openssl s_client -connect host:port -showcertsпять раз подряд, вы получаете похожие сообщения об ошибках для wget? Вы получаете одинаковые ошибки каждый из пяти запусков?
Рам

Ответы:

2

Проблема, с которой вы сталкиваетесь, заключается в том, что периодически полученная браузером подпись на сообщении неверна.

Это может произойти по очень большому количеству причин. Например, вы можете столкнуться с ошибкой openssl, аппаратным сбоем (плохая память или процессор), каким-то странным совпадением с вашим ключом (астрономически маловероятно). Или вы можете испытывать именно то, для чего предназначен MAC: кто-то может вмешиваться в ваш трафик на маршруте.

Поскольку ваш сертификат самоподписан, продолжайте и замените его, перезапустите apache и продолжайте, просто как шаг устранения неполадок. Если это не работает, убедитесь, что вы используете последнюю версию openssl (или просто измените версию openssl для удовольствия). Если вы по-прежнему получаете ошибки MAC, выясните, происходит ли сбой оборудования или вмешательство в сеть.

Эта часть ошибки особенно показательна:

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

Это указывает на то, что, скорее всего, сообщение было изменено по сравнению с версией, которая была подписана, и, возможно, усечено.

Сокол Момот
источник
1

Прежде всего, самоподписанные сертификаты часто являются более болезненными, чем дешевый сертификат SSL для конечных пользователей. Я не рекомендую использовать их, если у вас есть какой-либо публичный интерфейс или даже большое количество внутренних пользователей. Браузеры все чаще становятся строгими в отношении самозаверяющих сертификатов, отказывая им в доверии по умолчанию.

Во-вторых, на машине есть несколько разных хранилищ доверия.

Linux обычно использует NSS (Mozilla), но альтернативные браузеры также могут иметь свои собственные хранилища доверия.

Для сертификата возможно установить неправильные идентификаторы OID и т. Д. Нам нужно увидеть действительный сертификат. У PKI на самом деле нет конфиденциальности для сертификатов - только для закрытых ключей.

Пожалуйста, используйте http://pkif.sourceforge.net/pitt.html и сообщите нам, какие у вас есть ошибки или нет.

Спасибо.

Бреннан
источник
-2

Я не программист, поэтому, пожалуйста, будьте снисходительны со мной :)

Пару дней назад у меня возникли проблемы с доступом к моей учетной записи Gmail с ошибкой 126 (net :: ERR_SSL_BAD_RECORD_MAC_ALERT) в Chrome. Может быть, ваша проблема похожа на мою ?! Так что я нашел пост http://www.luvfree.com/forums/general_discussion/i_cannot_access_to_my_gmailcom_error_126_neterr_ssl_bad_record_mac_alert_in_chro.htm Это сайт знакомств luvfree.com, но они мне помогают.

Может быть, ваша проблема также в роутере.

Решением этой проблемы было обновление прошивки в роутере.

Бронислав Турнелиус
источник
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
Марк Хендерсон
Также ссылка может быть NSFW.
Бурхан Халид
-3

Многое может пойти не так. Я не думаю, что кто-то может ответить на этот вопрос, не зная конфигурацию вашей сети и то, как настроен Apache, как выполняется балансировка нагрузки и какой тип циклического перебора используется, а также другие аппаратные аспекты вашей сети.

Для меня, похоже, что на валидаторе имени хоста SSL он получает неожиданный ответ, который не совпадает с именем хоста?

djangofan
источник
Я не управляю сетью, оборудованием и т. Д. - все это работает на Amazon EC2. Я не запускаю балансировщик нагрузки или что-то еще перед сервером. Я делаю прямые TCP-соединения с этим хостом (AFAIK). Добавив эту информацию на мой вопрос.
Ян
1
SSL MAC не имеет абсолютно ничего общего с сетевым MAC.
Сокол Момот