1

最近、不安定な SSL 証明書パスの検証を検出しました。

Ubuntu 12.04 LTS (GNU/Linux 3.2.0-26-generic x86_64)
OpenJDK ランタイム環境 (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK 64 ビット サーバー VM (ビルド 20.0-b12、ミックスモード)

Ubuntu 10.04.1 LTS
OpenJDK ランタイム環境 (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.10.04.1)
OpenJDK サーバー VM (ビルド 20.0-b12、混合モード)

オンライン バンキング ホストへの SSL 接続に関する次のエラーで始まります。

sun.security.validator.ValidatorException: PKIX path validation failed:
java.security.cert.CertPathValidatorException:  
Path does not chain with any of the trust anchors  

ルート証明書が常にキーストアに含まれているかどうかを確認しました... (Baltimore Cyber​​Trust Root) でした。送信されたデータの MD5 および SHA1 フィンガープリントを、ブラウザの認証情報ダイアログで表示されたデータで再確認しました... 同じです! その後、SSL通信用の小さなユーティリティであるSSLPokeを見つけ、それを後続のリクエストに使用しました:

java -Djavax.net.debug=ssl SSLPoke hbci-pintan.gad.de 443

そして、これは不安定さを示しています: 10 件のリクエストのうち約 8 件が上記のエラーで失敗し、10 件中 2 件が成功しました。リクエストが失敗するたびに、Mac OS X 10.7.5 Java バージョン「1.6.0_35」と Java(TM) SE ランタイム環境 (ビルド 1.6.0_35-b10-428-11M3811)、Java HotSpot で同じリクエストをすぐに送信しました。 (TM) 64 ビット サーバー VM (ビルド 20.10-b01-428、混合モード)。これらの要求はすべて成功しました。そのため、このような SSL 証明書パスの検証は、OpenJDK では不安定なようです。

似たような経験をした人はいますか?

よろしく
ドミニク

4

1 に答える 1

1

この例外には2つの原因があると思います。

  1. Java キーストアでルート証明書が信頼されていません。
  2. 必要な中間証明書が存在しないか、間違っています。パス内のすべての証明書を Web サーバーからクライアントに送信する必要があります。

パスはどのトラスト アンカーとも連鎖していません

このリンク参照してください。

于 2012-10-18T06:48:33.320 に答える