Java移除ssl认证_Java SSL证书吊销检查
小編典典
我想出了如何在SSLContext中啟用CRL檢查,而無需實現注釋中建議的自定義驗證器。
主要是關于使用吊銷檢查器,只有幾行,沒有自定義檢查邏輯以及現在自動檢查CRL和驗證路徑來正確初始化SSLContext的TrustManager。
這是一個片段…
KeyStore ts = KeyStore.getInstance("JKS");
FileInputStream tfis = new FileInputStream(trustStorePath);
ts.load(tfis, trustStorePass.toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
// initialize certification path checking for the offered certificates and revocation checks against CLRs
CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX");
PKIXRevocationChecker rc = (PKIXRevocationChecker)cpb.getRevocationChecker();
rc.setOptions(EnumSet.of(
PKIXRevocationChecker.Option.PREFER_CRLS, // prefer CLR over OCSP
PKIXRevocationChecker.Option.ONLY_END_ENTITY,
PKIXRevocationChecker.Option.NO_FALLBACK)); // don't fall back to OCSP checking
PKIXBuilderParameters pkixParams = new PKIXBuilderParameters(ts, new X509CertSelector());
pkixParams.addCertPathChecker(rc);
tmf.init( new CertPathTrustManagerParameters(pkixParams) );
// init KeyManagerFactory
kmf.init(...)
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(kmf.getKeyManagers), tmf.getTrustManagers(), null);
從本質上講,這滿足了我在應用程序中所需的工作,檢查了頒發給客戶的證書是否在我們的CRL中被吊銷。只接受最終實體并允許CRL檢查失敗,因為它是我們的所有基礎結構。
2020-10-25
總結
以上是生活随笔為你收集整理的Java移除ssl认证_Java SSL证书吊销检查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 内部类 返回值_Java基础第
- 下一篇: 五子棋java判断平局_2020-10-