2012-03-21 156 views
2

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

证书是否有特殊价值?或者任何属性?

回答

1

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

规格由CA/browser forum定义。

OID值和根CA证书指纹被硬编码到浏览器中(请参阅security/certverifier/ExtendedValidation.cpp in Firefox, used to be in in security/manager/ssl/src/nsIdentityChecking.cpp)。还有一个list on Wikipedia作为参考,尽管原则上应该检查每个CA的策略OID。

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

您必须注意的一个问题是,根CA证书的硬编码SHA-1指纹需要完全匹配信任存储中的那些证书。有些CA会在大多数浏览器/ OS/JRE附带的软件包中稍后更新他们的CA证书:确保您使用相同的证书。