System.setProperty("com.sun.net.ssl.checkRevocation", "true");
Security.setProperty("ocsp.enable", "true");
設置這些屬性真的足以啓用OCSP嗎?如何在X509TrustManager中啓用OCSP?
如果是這樣,那麼爲什麼我們需要充氣城堡OCSP支持而不是僅僅設置這些屬性?
System.setProperty("com.sun.net.ssl.checkRevocation", "true");
Security.setProperty("ocsp.enable", "true");
設置這些屬性真的足以啓用OCSP嗎?如何在X509TrustManager中啓用OCSP?
如果是這樣,那麼爲什麼我們需要充氣城堡OCSP支持而不是僅僅設置這些屬性?
如果包含權威信息訪問擴展(OCSPSigning)的證書,那麼你沒有什麼可做更多的事情,然後設置你提到的屬性。
System.setProperty("com.sun.net.ssl.checkRevocation", "true");
Security.setProperty("ocsp.enable", "true");
見RFC3280和How to up OCSP using OpenSSL以獲取更多信息。
如果CA不提供此擴展頒發的證書,那麼你可以通過設置屬性
Security.property("ocsp.responderURL", ...)
默認配置響應器URL,OCSP響應的位置被隱式地從確定證書正在驗證。當證書中沒有頒發機構信息訪問擴展(在RFC 3280中定義)或者需要覆蓋時,使用該屬性。
如果OCSP響應的證書不頒發者的證書相匹配,那麼你可以通過設置
Security.property("ocsp.responderCertSubjectName", ...);
默認設置的備用主題名稱,OCSP響應的證書證書頒發者的證書被驗證。此屬性標識默認不適用時OCSP響應者的證書。它的值是一個字符串專有名稱(在RFC 2253中定義),用於標識證書路徑驗證期間提供的一組證書中的證書。如果僅使用主題名稱不足以唯一標識證書,則必須使用ocsp.responderCertIssuerName和ocsp.responderCertSerialNumber屬性。當屬性被設置時,那麼這兩個屬性將被忽略。
有關可用於配置OCSP的所有屬性的說明,請參閱JavaTM PKI Programmer's Guide。
我們爲什麼需要充氣城堡OCSP的支持,而不是僅僅設置該屬性?
沒有人說你必須使用充氣城堡作爲安全提供商。至少在使用JRE 1.8的情況下,使用默認的Sun JCE是很好的。
你檢查了[this](https://stackoverflow.com/questions/34140869/ocsp-check-in-java-secure-sockets)嗎? – Hmmmmm
是的,但它是一些自定義不可靠的解決方案。我需要標準的做事方式(例如由java提供的一些課程已經完成) – mdavid
請不要在一個問題中提出兩個問題。如果使用HostNameVerifier執行OCSP檢查有效,請提出一個新問題。 –