首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HostnameVerifier对TrustManager?

HostnameVerifier对TrustManager?
EN

Stack Overflow用户
提问于 2014-05-11 10:31:49
回答 1查看 3.3K关注 0票数 6

在什么情况下,在Java中使用HostnameVerifier而不是TrustManager?一个比另一个推荐吗?看看Java (接口HostnameVerifier接口TrustManager),我不知道什么时候最好使用它们(尽管TrustManager看起来更通用)。

在过去,我一直使用自定义TrustManager。然而,我注意到基于java的心脏出血攻击同时使用这两种方法(但我不认为它是正确的)。

编辑:当使用HostnameVerifier时,是否执行其他常规的X509检查,如路径构建、过期和撤销(如果配置)?我认为我基本上是在问HostnameVerifier是否补充了其他检查(而不是替换它们)。

例如,假设开发服务器位于dev.example.com,并由内部CA签名。dev.example.com的证书中有一个DNS名称,以及它的dev.example.com。此外,假设我以192.168.1.10的形式连接到它。我可以使用HostnameVerifier同时允许dev.example.com192.168.1.10吗?在这种情况下,是否允许附加名称,以及是否执行其他常规的X509检查?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-11 11:53:33

在什么情况下,在Java中使用HostnameVerifier而不是TrustManager?

绝不可能。他们做的事情不一样。TrustManage将证书作为SSL的一部分进行身份验证。HostnameVerifier将主机名作为HTTPS的一部分进行验证。他们不是在竞争。

一个比另一个推荐吗?

不是的。

编辑

  • TrustManager在TLS握手过程中运行。如果表示失败,则中止握手,连接失败。
  • HostnameVerifier在TLS握手之后运行,TLS连接从TLS的角度来看已经是有效的,因此此时您知道证书是有效的,由可信的颁发者签名,不过期(?)等等,您所要做的就是决定(a)它是否来自正确的服务器,(b)您是否信任该服务器。您可以在TrustManager,中执行(b)操作,但更常见的是,您根本不提供自己的TrustManager
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23591513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档