web-dev-qa-db-ja.com

SSLハンドシェイクのデバッグ

できればcurlでSSLハンドシェイクをデバッグする方法は?

クライアント証明書を使用したディレクトリごとの認証のトラブルシューティングを行いたい。サーバーが送信する受け入れ可能なクライアント証明書を見つけたいと思います。

前もって感謝します

51
Bajo

このコマンドを使用して、クライアント証明書のネゴシエーションをトラブルシューティングしました。

openssl s_client -connect www.test.com:443 -prexit

サーバーがクライアント証明書を常に必要としない場合、出力には「受け入れ可能なクライアント証明書CA名」とサーバーからのCA証明書のリスト、または「クライアント証明書CA名が送信されていない」が含まれる可能性があります。

54
curl -iv https://your.domain.io

Opensslコマンドを使用したくない場合は、証明書とヘッダーの出力が得られます。

22
hackajar

curlには、おそらくより多くの情報を表示するためのいくつかのオプションがありますが、このようなことには常にopenssl s_clientを使用します

-debugオプションを使用すると、多くの有用な情報が得られます

たぶん、これは非HTTP接続でも機能することを付け加える必要があります。したがって、「https」を実行している場合は、以下に提案されているcurlコマンドを試してください。 2番目のオプションが必要ない場合、またはopenssl s_clientが必要な場合

5
Vorsprung