2012-03-21 8 views

答えて

1

拡張検証は、ほとんどがユーザーインターフェイスの観点から有用です。クライアントが証明書を表示するためにユーザーインターフェイスに何も持っていない場合は、あまり役に立ちません。これらの検証は、JSSEではデフォルトでは統合されていません.Javaブラウザが不足しているためです。 (ちなみに、接続時に取得する証明書を確認し、最初の接続では確認せず、場合によっては別の証明書で接続する必要があります)。

仕様はCA/browser forumで定義されています。

OID値とルートCA証明書フィンガープリントは、ブラウザにハードコードされています(security/certverifier/ExtendedValidation.cpp in Firefox, used to be in in security/manager/ssl/src/nsIdentityChecking.cpp参照)。原則としてポリシーOIDを各CAでチェックする必要がありますが、参考としてlist on Wikipediaもあります。

X509Certificate.getExtensionValue()が不十分な場合は、BouncyCastleを使用すると便利です。

注意する必要がある1つの問題は、ルートCA証明書のハードコードSHA-1フィンガープリントが、トラストストア内のそれらの証明書と正確に一致する必要があることです。一部のCAは、ほとんどのブラウザ/ OS/JREに同梱されているバンドルで、しばらくの間CA証明書を更新します。同じ証明書を使用していることを確認してください。