1

検証チェーンの仕組みを理解したい。トラストストアで本当に必要な証明書は何ですか?

ルート CA -> 中間 1 -> 中間 2 -> サーバー証明書のチェーンがあります。トラストストアには中間の 2 証明書しかありません。私の 1 台のテスト マシンでは問題なく動作しますが、別のテスト マシンでは動作しません (同様の構成の別のサーバーに接続します)。この人気のある SunCertPathBuilderException が発生します: 要求されたターゲット例外への有効な証明書パスが見つかりません。サーバーはチェーン全体を送信します。解決策は、ルート CA までのチェーン全体をトラストストアに置くことだと思います。

あるマシンでは機能し、他のマシンでは機能しない理由を知りたいです。チェーン検証の仕組みに影響を与えることは可能ですか? サーバーは完全なチェーンの検証を要求できますか?

jdk のデフォルトのトラストストアが自動的に含まれているかどうかはわかりませんでした。2 台のマシンの jdk バージョン 1.7.0_21 (動作していない) と 1.7.0_25 (動作している) はわずかに異なります。それは問題ですか?

もう 1 つ: この SunCertPathBuilderException - 彼が気に入らないチェーンの部分を見つけることは可能ですか?

ヒントがあれば幸いです。ありがとう、ヘイケ

4

2 に答える 2

1

証明書チェーン内のいずれかの署名者の証明書のみが必要です。通常、一番上のもの。

-Djavax.net.debug=ssl,handshakeチェーン内の少なくとも 1 つの証明書が、デバッグ ログと同じ署名、日付、subjectDN、issuerDN などで存在することを確認するために、ローカルのトラストストア ファイルから参照できるチェーン自体をよく調べます。

于 2013-08-13T10:31:10.363 に答える
1

中間証明書のみが必要です。他のマシンの構成に問題がある可能性が高くなります。-Djavax.net.debug=sslJVM オプションに追加して、デバッグ情報を表示できます。

(詳細はこちらhttp://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug )

于 2013-08-13T09:47:21.653 に答える