【发布时间】:2013-07-30 09:06:06
【问题描述】:
如何获取与证书 (java.security.cert.X509Certificate) 匹配的所有主机名和 IP 的列表,包括主题替代名称?我只找到了javax.net.ssl.HostnameVerifiers 的各种实现。
【问题讨论】:
标签: java ssl certificate ssl-certificate
如何获取与证书 (java.security.cert.X509Certificate) 匹配的所有主机名和 IP 的列表,包括主题替代名称?我只找到了javax.net.ssl.HostnameVerifiers 的各种实现。
【问题讨论】:
标签: java ssl certificate ssl-certificate
主机名验证如何与证书绑定在RFC 2818, Section 3.1 中定义(对于 HTTPS,对于其他协议,请参阅 RFC 6125,但非常相似)。
简而言之:
X509Certificate 的实例,并遍历getSubjectAlternativeNames() 的结果。请注意,证书中的某些主机名可能包含通配符,因此您将无法构建可能匹配项的详尽列表。通配符的这个问题当然是编写验证器通常比尝试获取完整列表更有意义的原因之一。 (有关位置的详细信息,请阅读 RFC 2818 第 3.1 节,并记住点本身不是通配符表达式的一部分,因此 *.example.org 与 example.org 不匹配。)
【讨论】: