SSL/TLS通信の確立に失敗するケースでは、Schannel イベント ログ を確認することが問題解決の近道です。
Schannel イベント ログ は、Windows の システム イベント ログ に記録されます。
例えば、以下のような形でHTTPSサーバーとの通信に失敗すると、
>curl https://www.example.com
curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325) - 信頼されていない機関によって証明書チェーンが発行され ました。
システム イベント ログ に Schannel の エラー が記録されます。
※【画像】(Windows イベント ビューアー の スクリーンショット画像)
このエラーであれば証明書のデータが含まれているので、エラーになった証明書の情報を確認して、原因を調査することもできます。
→[詳細]-「XML で表示」
※【画像】(Windows イベント ビューアー の スクリーンショット画像)
また、レジストリの値を変えることで、エラー以外の情報も イベント ログ に記録することができます。
レジストリ:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL
値の名前:EventLogging
(出典:Windows で Schannel イベント ログを有効にする)
※【画像】(Windows レジストリ エディター の スクリーンショット画像)
デフォルトでは 1 が設定されていて、エラー だけ 記録されるようになっています。
すべてのログを記録するには、この EventLogging を 7 に設定します。
そうすると、SSL/TLS通信 を開始する時から ログ が記録されます。
※【画像】(Windows イベント ビューアー の スクリーンショット画像)
SSL/TLS通信 が成功した時は以下のようなログでした。
※【画像】(Windows イベント ビューアー の スクリーンショット画像)
こういった仕組みを活用し、素早く、問題解決ができるようになりたいです。

