如果无法使用HttpsUrlConnection类,如何关闭主机名验证?
在调试模式下(并且仅在调试模式下),我发现忽略主机名验证很方便,因为每个团队成员都有虚拟服务器,并且如果需要签名证书,则很难调试它们。
有了HttpsUrlConnection
这很容易实现(setHostnameVerifier
)。
但是,我HttpsUrlConnection
今天不使用-我正在使用与SSLSocket
对象相关的其他东西,因为我想要一个Web套接字客户端,并且HttpsUrlConnections
不支持Web套接字。连接失败,因为无法验证证书(对他们有好处-这是正确的行为),但是我想让它们继续进行。
他们死了
`javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:409)`
我已经SSLContext
用自己的信任管理器设置了,以便所有证书都被接受,但是我找不到切换主机名测试的方法。
HttpsURLConnection.setHostnameVerifier没有原始SSL套接字的等效项,并且不是必需的-您可以简单地忽略该位。我基本上是想抢先解决一个不存在的问题,这使我不满意-只要您为SSLContext设置自己的TrustManager,就可以了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句