ApacheからのSSL接続エラー


8

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]

私のサイトで有効/デフォルト-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 2011

どこの国から来ましたか?そのドメイン名/ウェブサーバーに複数のIPまたはサーバーがありますか?openssl s_client -connect host:port -showcerts5回続けて使用するとどうなりますか?wgetと同様のエラーメッセージが表示されますか?5つの実行のそれぞれで同じエラーが発生しますか?
ラム

回答:


2

あなたが抱えている問題は、断続的に、ブラウザが受け取ったメッセージの署名が間違っていることです。

これは、非常に多くの理由で発生する可能性があります。たとえば、opensslバグ、ハードウェア障害(RAMまたはCPUの不良)、ある種の異常なキーとの偶然の一致(天文学的に考えられない)が発生している可能性があります。または、MACが検出するように設計されたものを正確に体験している可能性があります。誰かが途中でトラフィックを改ざんしている可能性があります。

証明書は自己署名されているため、トラブルシューティングの手順と同様に、先に進んでそれを置き換え、Apacheを再起動して続行します。これが機能しない場合は、最新バージョンのopensslを実行していることを確認してください(または、面白さのためにopensslバージョンを変更してください)。それでもMACエラーが発生する場合は、ハードウェア障害やネットワーク改ざんが発生していないかどうかを調査してください。

エラーのこの部分は特に伝えています:

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

これは、ほとんどの場合、メッセージが署名されたバージョンから変更されており、おそらく切り捨てられていることを示しています。


1

まず第一に、自己署名証明書は多くの場合、エンドユーザーにとって安価なSSL証明書よりも苦痛です。パブリックインターフェースがある場合や、内部ユーザーが多数いる場合は、これらを使用することはお勧めしません。Broswersは、デフォルトの信頼を拒否することにより、自己署名証明書にますます厳しくなっています。

次に、マシン上にいくつかの異なるトラストストアがあります。

Linuxは一般にNSSを使用します(mozilla)が、代替ブラウザーにも独自のトラストストアがある場合があります。

証明書に誤ったOIDが設定されている可能性があります。実際の証明書を確認する必要があります。PKIには証明書の機密性はありません。秘密鍵の場合のみです。

http://pkif.sourceforge.net/pitt.htmlを使用して、エラーの有無をお知らせください。

ありがとう。


-2

私はプログラマーではないので、寛大にしてください:)

数日前、Chromeでエラー126(net :: ERR_SSL_BAD_RECORD_MAC_ALERT)が発生し、Gmailアカウントへのアクセスに問題が発生しました。多分あなたの問題は私に似ていますか?!だから私は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ですが、彼らは私を助けてくれるアドバイスを見つけました。

ルーターの問題かもしれません。

この問題の修正は、ルーターのファームウェアをアップグレードすることでした。


これは理論的には質問に答える可能性がありますが、答えの本質的な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
Mark Henderson

また、リンクはNSFWである可能性があります。
Burhan Khalid 2013年

-3

多くのことがうまくいかない可能性があります。私は、ネットワーク構成とApacheの構成方法、ロードバランシングの実行方法、ラウンドロビンの種類、およびネットワークの他のハードウェアの側面を知らなければ、誰もこれに答えることはできないと思います。

私には、SSLホスト名検証ツールで、ホスト名と一致しない予期しない応答が返されたように見えますか?


ネットワークやハードウェアなどは管理していません。これはすべてAmazon EC2で実行されています。サーバーの前でロードバランサーなどを実行していません。そのホストに直接TCP接続を行っています(AFAIK)。この情報を質問に追加します。
ヤン

1
SSL MACは、ネットワークMACとはまったく関係ありません。
Falcon Momot 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.