首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >棒棒糖握手失败

棒棒糖握手失败
EN

Stack Overflow用户
提问于 2015-03-19 16:48:29
回答 1查看 1.3K关注 0票数 1

我正在尝试做一个HTTP帖子,但是我得到了两个不同的错误:

代码语言:javascript
复制
javax.net.ssl.SSLHandshakeException: Handshake failed
net.ssl.SSLPeerUnverifiedException: No peer certificate

我通过如下所指定的解决方案修复了无对等证书错误:https://stackoverflow.com/a/4837230/4254419

但是在修复错误的同时,它会抛出一个新的错误,即握手失败的

我知道这不安全,我也不在乎,这不是为了生产,所以我不在乎安全。这个问题有解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-06-09 20:30:18

我也有同样的问题。我找到了一个链接https://code.google.com/p/android/issues/detail?id=88313,在这里我找到了一个代码:

代码语言:javascript
复制
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的两个方法,正如我前面所写的。另外,这也不是最好的解决方案,您以后可能会遇到一些安全问题,因为对于连接,它可以使用一些旧的密码算法。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29150400

复制
相关文章

相似问题

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