如何在X509TrustManager中启用OCSP?

时间:2016-11-26 21:13:02

标签: java ssl-certificate jsse ocsp certificate-revocation

#calandar:hover * {
    fill: #00FF00;
}

设置这些属性是否足以启用OCSP?

如果是这样,那么为什么我们需要弹性城堡OCSP支持而不仅仅是设置这个属性?

1 个答案:

答案 0 :(得分:3)

如果证书包含授权信息访问扩展(OCSPSigning),那么您无需做更多事情,那么请设置您提到的属性。

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

有关详细信息,请参阅RFC3280How to up OCSP using OpenSSL

如果您的CA没有为已颁发的证书提供此扩展,那么您可以通过设置属性来配置响应者URL

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

默认情况下,OCSP响应程序的位置是从正在验证的证书中隐式确定的。当证书中不存在授权信息访问扩展(在RFC 3280中定义)或需要覆盖时,将使用该属性。

如果您的OCSP响应者的证书与发行人的证书不匹配,那么您可以通过设置

来设置备选主题名称
Security.setProperty("ocsp.responderCertSubjectName", ...);
  

默认情况下,OCSP响应者的证书是要验证的证书的颁发者的证书。当默认值不适用时,此属性标识OCSP响应程序的证书。其值是字符串可分辨名称(在RFC 2253中定义),用于标识证书路径验证期间提供的证书集中的证书。如果单独的主题名称不足以唯一标识证书,则必须使用ocsp.responderCertIssuerName和ocsp.responderCertSerialNumber属性。如果设置了属性,则忽略这两个属性。

有关可用于配置OCSP的所有属性的说明,请参阅JavaTM PKI Programmer's Guide

为什么我们需要弹性城堡OCSP支持而不是仅设置此属性?

没有人说你必须使用充气城堡作为安全提供者。使用默认的太阳JCE至少在使用JRE 1.8时是好的。