【发布时间】:2014-06-28 18:45:24
【问题描述】:
在什么情况下会在 Java 中使用 HostnameVerifier 而不是 TrustManager?一个比另一个推荐吗?查看 Java 文档(Interface HostnameVerifier 和 Interface TrustManager),我不知道什么时候最好使用它们(尽管 TrustManager 似乎更通用)。
过去,我一直使用自定义TrustManager。但是,我注意到Heartbleed exploit in java 两者都使用(但我认为它不正确)。
编辑:当使用HostnameVerifier 时,是否执行了其他常规的 X509 检查,例如路径构建以及过期和撤销(如果已配置)?我想我本质上是在问HostnameVerifier 是否补充了其他检查(而不是替换它们)。
例如,假设开发服务器位于dev.example.com,并且由内部 CA 签名。 dev.example.com 的证书中有一个 DNS 名称,它的 dev.example.com。此外,假设我以192.168.1.10 连接到它。我可以使用HostnameVerifier 来允许dev.example.com 和192.168.1.10 吗?在这种情况下,是否允许使用附加名称并且是否执行其他常规 X509 检查?
【问题讨论】: