2016-11-26 40 views
2
System.setProperty("com.sun.net.ssl.checkRevocation", "true"); 
Security.setProperty("ocsp.enable", "true"); 

OCSPを有効にするには、これらのプロパティを本当に十分に設定していますか?X509TrustManagerでOCSPを有効にする方法は?

この場合、このプロパティを設定するのではなく、バウンシーキャッスルOCSPサポートが必要な理由は何ですか?

+0

[this](https://stackoverflow.com/questions/34140869/ocsp-check-in-java-secure-sockets)を確認しましたか? – Hmmmmm

+0

はい、それはカスタムの信頼できない解決策です。私は物事を行う標準的な方法が必要です(例えば、すでにJavaで提供されているいくつかのクラスがあります) – mdavid

+0

2つの質問を1つにしないでください。 HostNameVerifierでOCSPチェックを実行することが有効な場合は、新しい質問を提起してください。 –

答えて

3

オーソリティ情報アクセス拡張(OCSPSigning)を含む証明書を使用する場合は、それ以上何もする必要はありません。

System.setProperty("com.sun.net.ssl.checkRevocation", "true"); 
Security.setProperty("ocsp.enable", "true"); 

は、より多くの情報のためRFC3280How to up OCSP using OpenSSLを参照してください。

CAが発行する証明書にこの拡張機能を提供していない、あなたはデフォルトで

Security.property("ocsp.responderURL", ...) 

プロパティを設定することにより、レスポンダURLを設定することができ、あなたの、OCSPレスポンダの場所がから暗黙的に決定された場合証明書が検証されています。このプロパティは、Authority Information Access拡張(RFC 3280で定義されている)が証明書にない場合、またはオーバーライドが必要な場合に使用されます。

あなたのOCSPレスポンダの証明書が発行者の証明書と一致しない場合、あなたはデフォルトで

Security.property("ocsp.responderCertSubjectName", ...); 

を設定することにより、代替サブジェクト名を設定することができ、OCSPレスポンダの証明書があります検証された証明書の発行者のものです。このプロパティは、デフォルトが適用されない場合のOCSPレスポンダの証明書を識別します。その値は、RFC 2253で定義されている文字列識別名で、証明書パスの検証中に提供された一連の証明書の証明書を識別します。サブジェクト名だけで証明書を一意に識別できない場合は、代わりにocsp.responderCertIssuerNameおよびocsp.responderCertSerialNumberプロパティの両方を使用する必要があります。プロパティが設定されている場合、これら2つのプロパティは無視されます。

OCSPの設定に使用できるすべてのプロパティについては、JavaTM PKI Programmer's Guideを参照してください。


我々はだけでなく、このプロパティを設定するので快活なお城のOCSPのサポートを必要とするのはなぜ?

セキュリティプロバイダとしてバウンシーキャッスルを使用する必要があると言っている人はいません。デフォルトの太陽を使用するJCEは、少なくともJRE 1.8を使用する場合は問題ありません。

+0

と賞金の城はどうですか...? – mdavid

+0

@mdavid最新の回答をご覧ください。 –

+0

とJRE 1.7と賞金の城はどうですか?また、正確に私の行を私のTrustManager実装に入れるべきですか? – mdavid

関連する問題