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

设置这些属性真的足以启用 OCSP 吗?

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

4

1 回答 1

4

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

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

有关更多信息,请参阅RFC3280如何使用 OpenSSL 升级 OCSP

如果您的 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 程序员指南


为什么我们需要充气城堡 OCSP 支持而不仅仅是设置这个属性?

没有人说你必须使用充气城堡作为安全提供者。至少在使用 JRE 1.8 的情况下,使用默认的 sun JCE 是可以的。

于 2016-11-29T20:15:22.887 回答