8

最近、AWS ELB から HAProxy に切り替えました。ロードバランサー (HAProxy 1.5dev19) で SSL を終了しています。

切り替えてから、HAProxy ログに SSL 接続エラーが発生し続けています (リクエストの総数の 5 ~ 10%)。3 種類のエラーが繰り返されます。 SSL ハンドシェイク中に接続が閉じられた SSL ハンドシェイク中のタイムアウト SSL ハンドシェイクの失敗 (これはめったに発生しません)

私は無料の StartSSL 証明書を使用しているので、最初に考えたのは、一部のホストでこの証明書の受け入れに問題があるということでした。ELB ではログ記録が提供されないため、過去にこれらのエラーは見られませんでした。唯一の問題は、一部のホストが最終的に接続に成功することです。

エラーなしでサーバーに接続できるため、これらのエラーを自分の側で複製する方法がわかりません。

4

3 に答える 3

8

これは、ハンドシェークの途中 (TCP RST またはタイムアウト) に離れていくクライアントのように聞こえます。これはある程度正常ですが、5 ~ 10% では高すぎます。証明書の問題である可能性があります。それがどのように表示されるかは正確にはわかりません

私に起こること:

  • ネゴシエーションが非常に遅い場合、より多くのクライアントが離脱することになります。
  • 新しい SSL エンドポイント プロキシが報告を開始するまで認識していなかった、根本的な TCP の問題がある可能性があります。

個々のホストが成功する場合と失敗する場合がありますか? その場合、これが証明書の問題である可能性は低いです。ユーザーが信頼できない証明書を拒否したときに、接続がどのように切断されるのかわかりません。

HAProxy マシンで Wireshark を使用して、SSL ハンドシェイクをキャプチャして解析できます (サーバーの秘密鍵を持っているため、ハンドシェイク分析のためにセッションを復号化する必要はありません)。

于 2013-07-11T15:41:51.617 に答える
1

私もこんなことがありました。以下が最初SSL handshake failureに表示され、スイッチをオフにした後、haproxy ログoption dontlognullも記録されました。Timeout during SSL handshake

最初に、すべてのdefaultsタイムアウトが正しいことを確認しました。

timeout connect 30s
timeout client  30s
timeout server  60s

残念ながら、問題はfrontendセクションにありました

ではなくtimeout client 60手段だけを想定しているセリフがありました。60ms60s

特定のクライアントの接続が遅く、SSL ハンドシェイク中に追い出されていたようです。フロントエンドでクライアントのタイムアウトを確認してください。

于 2016-09-22T18:15:22.703 に答える