我正在尝试做一个HTTP帖子,但是我得到了两个不同的错误:
javax.net.ssl.SSLHandshakeException: Handshake failed
net.ssl.SSLPeerUnverifiedException: No peer certificate我通过如下所指定的解决方案修复了无对等证书错误:https://stackoverflow.com/a/4837230/4254419
但是在修复错误的同时,它会抛出一个新的错误,即握手失败的。
我知道这不安全,我也不在乎,这不是为了生产,所以我不在乎安全。这个问题有解决办法吗?
发布于 2015-06-09 20:30:18
我也有同样的问题。我找到了一个链接https://code.google.com/p/android/issues/detail?id=88313,在这里我找到了一个代码:
public class MySSLSocketFactory extends SSLSocketFactory {
SSLContext sslContext = SSLContext.getInstance("TLS");
...
@Override
public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException {
final SSLSocket sslSocket = (SSLSocket) sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
sslSocket.setEnabledCipherSuites(sslSocket.getSupportedCipherSuites());
return sslSocket;
}
@Override
public Socket createSocket() throws IOException {
final SSLSocket sslSocket = (SSLSocket) sslContext.getSocketFactory().createSocket();
sslSocket.setEnabledCipherSuites(sslSocket.getSupportedCipherSuites());
return sslSocket;
}
}您可以从您提供的链接中使用MySSLSocketFactory代码,但是您需要覆盖createSocket的两个方法,正如我前面所写的。另外,这也不是最好的解决方案,您以后可能会遇到一些安全问题,因为对于连接,它可以使用一些旧的密码算法。
希望这能有所帮助。
https://stackoverflow.com/questions/29150400
复制相似问题