2

我得到了 URL 列表,我想使用 JAVA 验证他们的扩展验证 (EV) 属性,我可以提出请求并获取他们的证书,但我不确定如何验证给定站点的“扩展验证”。

证书有什么特殊价值吗?还是有什么属性?

4

1 回答 1

1

从用户界面的角度来看,扩展验证最有用。如果您的客户端在其用户界面中没有任何内容来显示证书,那么它就不那么有用了。这些验证默认没有集成到 JSSE 中,可能是因为对它的需求很少(缺少 Java 浏览器)。(顺便说一句,您应该验证您在连接时获得的证书,而不是检查第一个连接并连接另一个,以防万一)。

规范由CA/浏览器论坛定义。

OID 值和根 CA 证书指纹被硬编码到浏览器中(参见security/certverifier/ExtendedValidation.cppFirefox,以前在 中security/manager/ssl/src/nsIdentityChecking.cpp)。Wikipedia 上也有一个列表供参考,但原则上您应该检查每个 CA 的策略 OID。

要分析扩展,如果还不够,使用BouncyCastle可能会很有用。X509Certificate.getExtensionValue()

您必须注意的一个问题是根 CA 证书的硬编码 SHA-1 指纹需要与信任库中的那些证书完全匹配。在大多数浏览器/OS/JRE 附带的捆绑包中,一些 CA 会不时更新其 CA 证书:确保您使用的是相同的。

于 2012-05-05T10:36:28.540 回答