web-dev-qa-db-ja.com

DebianWheezyアップグレード後のPerlのLWPでのSSLの問題

LennyからDebianWheezyにアップグレードしたところ(長い話)、Crypt :: SSLeay(libcrypt-ssleay-Perl)など、いくつかのPerlパッケージが何らかの理由でアップグレードされませんでした。

Libcrypt-ssleay-Perlをインストールするまで、LWPを使用してクレジットカード支払いゲートウェイに接続できませんでした。現在は「機能」していますが、非常に役に立たないエラーメッセージ「エラー」のため、SSL接続を確立するのに15〜20秒かかります。状態不明」:

SSL_connect:初期化前/接続
SSL_connect:不明な状態
(15〜20秒待っています...)#このコメントはwaldo22からのものです
SSL_connect:不明な状態のエラー
SSL_connect:before/connect初期化
SSL_connect:SSLv3書き込みクライアントhello A
SSL_connect:SSLv3読み取りサーバーhello A
SSL_connect:SSLv3読み取りサーバー証明書A
SSL_connect:SSLv3読み取りサーバーが完了しましたA
SSL_connect:SSLv3書き込みクライアントキー交換A
SSL_connect:SSLv3書き込み変更暗号仕様A
SSL_connect:SSLv3書き込みが終了しましたA
SSL_connect:SSLv3フラッシュデータ
SSL_connect:SSLv3読み取り終了A

これは、LWPが認証局とサーバー証明書の検証のデフォルトの動作を変更することと関係があると感じています。
https://stackoverflow.com/questions/74358/how-can-i-get-lwp-to-validate-ssl-server-certificates#5329129
そしておそらく:
https://stackoverflow.com/questions/5639803/aws-ses-certificate-verify-failed

私のPerlモジュールはCrypt :: SSLeayLWP :: useragent経由で使用しています。

明らかに、15〜20秒はSSL接続を確立するのを待つには長すぎますが、より役立つエラーメッセージがなければ、どうすればよいかわかりません。

これをより適切にデバッグする方法、またはより詳細な出力を取得する方法について誰かが提案を持っていますか?

本当にありがとう、

-ウェス

3
waldo22

うわー、これはやっかいでした。

appears OpenSSL 1.0.1で問題が発生し、一部のサーバーでTLS1.1(または1.2 ???)と自動ネゴシエーションを試みます(編集:ファームウェア<10.2.4を実行しているBigIPサーバー)これらのサーバーは接続を切断し、要求を拒否します。見る:

https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665452

私はPaypalの「PayflowPro」クレジットカードゲートウェイに接続しようとしていますが、Paypalはもともとリストの主な犯人の1人でした。

バグチケットによると、1.0.1bではPaypalで「修正済み」と言われていますが、1.0.1c-3を実行しているのに、まだ問題が発生しています。それがwww.Paypal.comで修正されているのに、payflowpro.Paypal.comでは修正されていないことを意味するのかどうかはわかりません。

回避策:SSL3を強制するように$ENV{HTTPS_VERSION} = 3を設定すると、少なくとも Crypt :: SSLeay

おそらくこれは、TLS1.1のネゴシエーションを試みず、SSL3のみを使用するために機能します。

Openssl s_clientでテストすると、オプション-ssl3-tls1、および-no_tls1で機能するため、私の意見では、ネゴシエーションの問題である必要があります。

とにかく、少なくともそれは回避策です。

実際の問題は、ファームウェアが10.2.4未満のF5BigIPロードバランサーのファームウェアのバグが原因で発生します。これにより、TLS 1.1または1.2接続が長いClientHello要求に適切に応答せず、ハングします。

real修正は、BigIPロードバランサーのファームウェアを> = 10.2.4に更新することです。

もちろん、Paypal/PayflowはこれをOpenSSLのせいにしました...

1
waldo22