- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在什么情况下会在 Java 中使用 HostnameVerifier
而不是 TrustManager
?一个比另一个推荐吗?查看 Java 文档(Interface HostnameVerifier 和 Interface TrustManager),我不知道什么时候最好使用它们(尽管 TrustManager
似乎更通用)。
过去,我一直使用自定义的 TrustManager
。但是,我注意到 Heartbleed exploit in java两者都用(但我认为它不正确)。
编辑:使用HostnameVerifier
时,是否执行了其他惯常的 X509 检查,例如路径构建、过期和撤销(如果已配置)?我想我本质上是在问 HostnameVerifier
是否补充了其他检查(而不是替换它们)。
例如,假设开发服务器位于 dev.example.com
并且由内部 CA 签名。 dev.example.com
的证书及其 dev.example.com
中有一个 DNS 名称。此外,假设我以 192.168.1.10
连接到它。我可以使用 HostnameVerifier
来允许 dev.example.com
和 192.168.1.10
吗?在这种情况下,是否允许额外的名称和是否执行了其他惯常的 X509 检查?
最佳答案
Under what circumstances would one use a HostnameVerifier over a TrustManager in Java?
从来没有。他们做不同的事情。 TrustManage 将证书作为 SSL 的一部分进行身份验证。 HostnameVerifier 验证主机名作为 HTTPS 的一部分。他们没有竞争。
Is one recommended over the other?
没有。
编辑
TrustManager
在 TLS 握手期间运行。如果它指示失败,则握手中止并且连接失败。HostnameVerifier
在 TLS 握手之后 运行,通过从 TLS 角度来看已经有效的 TLS 连接,因此此时您知道证书是有效、由受信任的发行者签名、未过期 (?) 等,您所要做的就是决定 (a) 它是否来自正确的服务器以及 (b) 您是否信任该服务器。您可以在 TrustManager
中执行 (b),但更常见的是您根本不会提供自己的 TrustManager
。关于java - HostnameVerifier 与 TrustManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23591513/
我正尝试在 google play 中发布我的应用程序并从 Google Play 收到此消息。 我们拒绝了您的应用程序,包名称为 xxx.xxx.xxx.xxx,因为它违反了我们的恶意行为或用户数据
我有问题,需要社区的帮助。现在 Google data protection 发生了变化我在 Google Developer Console 中收到警告。 Security warning Your
3 月 1 日之后,当我将我的应用程序上传到测试组时,我收到了来自 Google 的特定邮件,其中引用了: This information is intended for developers wi
提交到 Google Play 商店后,我收到一封电子邮件通知,告诉我我的 APK 正在使用 HostnameVerifier 接口(interface)的不安全实现。 我根本找不到在代码中使用 Ho
我在提交我的应用程序时遇到了问题。我已经完成了如下的 Volley 设置,但 Play 商店显示为拒绝。 主机名验证器 您的应用正在使用 HostnameVerifier 接口(interface)的
在什么情况下会在 Java 中使用 HostnameVerifier 而不是 TrustManager?一个比另一个推荐吗?查看 Java 文档(Interface HostnameVerifier
我正在使用 Koushik Dutta 的 Ion Android 的网络库。出于调试目的,我需要覆盖 SSL 检查。我发现了如何使用以下方法设置我自己的 SSL 上下文和 TrustManager:
我正在为我的 SSL 客户端实现一个主机名 validator 。我知道 HTTPS URL 连接的默认主机名 validator 是静态的。我的问题是我不希望主机名验证是静态的,因为我的客户端中有多
在我们的应用程序中,我们通过 HTTPS 对 auth 服务进行 HTTP 调用。我需要确保我们进行了所有必要的检查以确保连接安全。作为其中的一部分,我必须执行以下操作: 验证授权服务器的证书是否由知
在 one of the rules SonarQube 不允许使用假人 HostnameVerifier盲目接受每个主机: Client client = ClientBuilder.newBuil
Play 商店拒绝应用的原因: Your app(s) are using an unsafe implementation of the HostnameVerifier interface. Yo
我有下面的java类,它检查instance是否不为空并且匹配dev/qa/stg/staging/prod 和 hostnameVerification 为 true,然后 getHostnameV
我有一个从 HostnameVerifier 实现的自定义验证方法。 @Override public boolean verify(String hostname, SSLSession sessi
我收到来自 Google 的通知说:安全警报 您的应用使用了不安全的 HostnameVerifier 实现。请参阅这篇 Google 帮助中心文章了解详细信息,包括修复漏洞的截止日期。 是否有人收到
当我尝试向 AWS EC2 实例发出某些请求时,收到错误“无法分配连接,因为主机名验证程序 PgjdbcHostnameVerifier 无法验证 my_dns_of_postgresql_datab
我正在使用 DashO 6.10.1 进行 war 混淆,在此过程中,我在运行 obfuscate.xml 时遇到以下错误。 错误: com.preemptive.dasho.DashOClassNo
我收到以下错误, Security alert Your app is using an unsafe implementation ofHostnameVerifier. Please see th
最近我的一个应用收到了来自 Google Play 的安全警报,如下所示。 您的应用使用了不安全的 HostnameVerifier 实现.并引用链接 Google Play Help Center有
我们正在编写一个应连接到不同 LDAP 服务器的应用程序。对于每个服务器,我们可能只接受特定的证书。该证书中的主机名无关紧要。这很容易,当我们使用 LDAP 和 STARTTLS 时,因为我们可以使用
这个问题在这里已经有了答案: how to fix hostname verifier interface while uploading app to google play console (2
我是一名优秀的程序员,十分优秀!