web-dev-qa-db-ja.com

IEはTLS相互認証でクライアント証明書を送信していません

サードパーティAPIとのTLS相互認証を確立しようとしています。クライアント証明書は正常に構成されており、エンドポイントのURLにChromeを介してアクセスしようとすると正常に動作します(Chromeはメッセージボックスで証明書を確認し、コンテンツ)。

IEを実行しようとしても同じことは機能せず、このメッセージを表示します

Cannot securely connect to this page

This might be because the site uses outdated or unsafe TLS security settings. If this keeps happening, try contacting the website’s owner.

Your TLS security settings aren’t set to the defaults, which could also be causing this error.

だから私はWiresharkに詳細を記録しました、そして、これはそれがどのように見えるかです enter image description here 詳細を詳しく調べてみると、ステップ9(TLSv1.2 379証明書、クライアントキー交換、暗号仕様の変更、暗号化されたハンドシェイクメッセージ)でクライアント証明書が送信されなかったことがわかります。

そしてステップ10でこれは私が得ているエラーです

enter image description here

enter image description here

この動作の背後にある理由は何ですか?

更新:コードを使用してsmaeエンドポイントにアクセスしてSChannelログを確認しようとすると、次のような警告が表示されます

The remote server has requested TLS client authentication, but no
suitable client certificate could be found. An anonymous connection
will be attempted. This TLS connection request may succeed or fail,
depending on the server's policy settings.
8
Athul

chromeではなく、IEではなく、問題はIE固有です。既に証明書を追加しているので、証明書は自動的に選択されているように見えますが、送信されていません。エラーで「TLSセキュリティ設定がデフォルトに設定されていません」というメッセージも表示されます。シナリオに当てはまる情報を見つけました こちら 。基本的に、IEはSSL 2.0が有効になっているとTLS 1.2を正常に使用できません。これを確認できますか?設定?

設定写真

インターネットオプション->アドバンスに進みます。 「SSL 2.0を使用する」を探してください。SSL/ 2.0がオプションではないWindows/IEの新しいバージョンを使用しているため、おそらくオプションが表示されません。使用しています。

2
apocalysque

壊れた証明書失効リスト(crl)を持つ証明書で同様の問題が発生しました。

enter image description here

Fiddler でこれを追跡できました。これは、失敗したCRLへの要求を示しました。 WireSharkでも同じように見えるはずです。さらに、Fiddlerを使用してSSLトラフィックを解読する場合、Fiddlerは独自の自己署名証明書を使用してブラウザーと通信するため、問題はありませんでした。

それが問題になる可能性があるのはクライアント証明書であるため、それがあなたのケースに何らかの違いをもたらすかどうかはわかりません。

一時的な(安全ではない!)回避策として、clrチェックを無効にすることができます。これで問題が解決する場合、crlが実際に問題であり、crlに欠陥がないため、何らかの形で適切な証明書を要求する必要があります。

enter image description here

1