来自Apache的SSL连接错误

我在Ubuntu 10.04上运行Apache / 2.2.14上的(自签名)SSL证书站点,但是各种浏览器在连接尝试的一半时发生错误。 刚才看到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] 

在我的sites-enabled / 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" 

我不pipe理networking,硬件等 – 这些都在Amazon EC2上运行。 我没有运行负载平衡器或服务器前的其他任何东西。 我直接与该主机build立TCP连接(AFAIK)。

有任何想法吗? 在此先感谢您的帮助。

你遇到的问题是间歇性的,浏览器收到的消息上的签名是错误的。

这可能会有很多原因。 例如,你可能会遇到一个openssl错误,一个硬件故障(错误的RAM或CPU),一些与你的密钥的怪异巧合(天文数据不太可能)。 或者,您可能正在体验到MACdevise要检测的内容:某人可能会篡改您的stream量。

由于您的证书是自签名的,请继续并replace它,重新启动apache并继续,就像故障排除步骤一样。 如果这不起作用,请检查您是否正在运行最新版本的openssl(或者只是更改openssl版本以获得更多的乐趣)。 如果您仍然收到MAC错误,请调查您是否有硬件故障或networking篡改正在进行。

这部分错误特别说明:

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

这表明消息最有可能是从已签名的版本中修改的,可能会被截断。

首先,对于最终用户来说,自签名证书通常比一个便宜的SSL证书更加痛苦。 如果你有任何一种公共接口,甚至大量的内部用户,我不推荐使用它们。 由于拒绝默认信任,交叉口越来越严格自签证书。

其次,在一台机器上有几个不同的信任商店。

Linux一般使用NSS(mozilla),但替代浏览器也可能拥有自己的信任库。

证书可能有不正确的OID设置等。我们需要查看实际的证书。 公钥基础设施并不真正对证书保密 – 只能用于私钥。

请使用http://pkif.sourceforge.net/pitt.html告诉我们你有什么错误,或者没有。

谢谢。

我不是程序员,所以请宽恕我:)

几天前,我在Chrome中遇到了错误126(net :: ERR_SSL_BAD_RECORD_MAC_ALERT)的gmail帐户访问问题。 也许你的问题类似于我的? 所以我find后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,但他们的build议帮助我。

也许你的问题也在路由器。

解决此问题的方法是升级路由器中的固件。

很多事情可能会出错。 我不认为任何人都可以在不知道networkingconfiguration以及Apache如何configuration,负载平衡如何完成以及使用什么types的循环以及networking的其他硬件方面的情况下回答这个问题。

对我来说,它看起来像在SSL主机validation器,它得到一个意外的响应,不符合主机名?