例如,我正在连接谷歌:( https://finance.google.com/finance?q=NASDAQ%3AAAPL ) 和 android okhttp 客户端,但它抛出错误:
javax.net.ssl.SSLPeerUnverifiedException: Hostname www.google.com not verified:
certificate: sha256/7ygD2cyU8sl30bjSfYs6WWBQ1IZVLiPNK04Tfzf5VPk=
DN: CN=*.facebook.com,O=Facebook\, Inc.,L=Menlo Park,ST=California,C=US
subjectAltNames: [*.facebook.com, *.xx.fbcdn.net, *.fbsbx.com, *.xz.fbcdn.net, *.facebook.net, *.xy.fbcdn.net, *.messenger.com, fb.com, *.fbcdn.net, *.fb.com, *.m.facebook.com, messenger.com, facebook.com]
2天后,我得到了
javax.net.ssl.SSLPeerUnverifiedException: Hostname www.google.com not verified:
certificate: sha256/H7hNBz7v4J3Nf2Mj+xzmfoq5xJRS8cXC0gZO+LO06eA=
DN: CN=syndication.twitter.com,OU=Twitter Security,O=Twitter\, Inc.,L=San Francisco,ST=California,C=US
subjectAltNames: [syndication.twitter.com, cdn.syndication.twitter.com, syndication-o.twitter.com, syndication.twimg.com, cdn.syndication.twimg.com, syndication-o.twimg.com]
at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:316)
我试过了
builder.hostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
但没有运气。
它还会抛出如下异常:
javax.net.ssl.SSLHandshakeException: 连接被对端关闭
在 com.android.org.conscrypt.NativeCrypto.SSL_do_handshake( native 方法)
在 com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:324)
在 okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:302)
异常(exception)。
连接,之前可以,但是最近几天,如果失败了,也许谷歌服务器这几天更新了什么?我该怎么办?
最佳答案
看来和我的代理有关
关于安卓 OKHttp SSLPeerUnverifiedException/SSLHandshakeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49331845/