web-dev-qa-db-ja.com

HTTPSへの接続をシミュレートし、ハンドシェイクを記録する方法は?

IIS 6つのWebサーバーがHTTPおよびHTTPS経由でWebサイトをホストしています。Mac上のSafari4で、HTTPS経由で接続すると、ファーム内の一部のノードがブラウザーをトリガーして証明書エラーを発生させます。ユーザーにとっては、他のノードは正常に機能します。常に同じノードが問題を引き起こしますが、IEまたはChromeでは、問題は発生していないようです。

ファーム内のこれらのノードは正しく構成されていないと思いますが、個々のサーバーのセットアップを確認しても問題を簡単に特定することはできません。クライアント側のツールを既知の正常なノードに向け、SSLクライアントとサーバーのhello、証明書メッセージ、鍵交換などをクライアントの観点からキャプチャし、暗号化せずに、既知の問題のあるノードで繰り返します。比較してください。

このためのWindowsツール、または障害を診断するためのより良い方法を提案できますか?

2

私はよく使用しました OpenSSLのs_clientWin32バージョン が同じように機能しない理由がわかりません。

次のコマンドを使用して、SSLハンドシェイクについて非常に詳細にすることができます。

openssl s_client -debug -msg -state -status -showcerts -connect <Host>:443

その後、おしゃべりを減らしたい場合は、いくつかの議論をやめることができます。

唯一の署名CAで-CAfileを指定することもできます。

5
Dan Carley

記事 HTTPS接続の最初の数ミリ秒 はあなたが探しているものを説明しています。

2
FerranB

Fiddler2を見てください- http://www.fiddler2.com

「Fiddlerは、コンピューターとインターネット間のすべてのHTTP(S)トラフィックをログに記録するWebデバッグプロキシです。Fiddlerを使用すると、すべてのHTTP(S)トラフィックを検査し、ブレークポイントを設定し、着信データまたは発信データを「いじる」ことができます。強力なイベントベースのスクリプトサブシステムであり、任意の.NET言語を使用して拡張できます。」

Fiddlerは、優れた汎用Webデバッグツールです。ここで、目的のために、各サーバーに個別に接続するという点でのDavidからのアドバイスと、Fiddlerから何が起こっているかを追跡する機能を組み合わせることができます。問題がどこにあるかを正確に特定できるように、接続しているサーバーを知ることは明らかに重要です。

1
James Berry

ファームはどのように構成されていますか?ファームの各ノードを確認できる場合(つまり、直接またはVPN経由で同じネットワーク上にある場合、またはそれらに公開IPアドレスがある場合)、それぞれに接続して、証明書の問題が発生しているノードを確認できませんか?

各ノードの場合:

  • 完全にブラウザを閉じます(次のステップでその関連付けをローカルで変更しようとしているため、名前に関連付けられたIPアドレスがキャッシュされている場合)
  • ホストファイル(ほとんどのWindows構成ではc:\ windows\system32\drivers\etc\hosts)にエントリを追加して、その直接アドレスを証明書にあると予想される(サブ)ドメイン名に関連付けます。
  • ブラウザを開いてサイトにアクセスします
0
David Spillett