admin管理员组

文章数量:1618697

今天在项目遇到了Received fatal alert: handshake_failure 的问题,直译就是握手失败了,说实话,我也是第一次碰到这种情况。在各大论坛,各种技术博客的海洋里,仍然没有解决我的问题。最后捡漏发现了这个原因,真的太出乎意料了。

首先和大家说一下网上的一些经验和处理办法,算是一个总结。

我们用curl 和 postman 发送请求,都可以握手成功,唯独用代码不能请求成功。handshake_failure的原因绝不是一种。

原因一: Https 的协议版本不一致。协议有 TLSv1.2,TLSv1.1,SSLv3

如何来确定这个问题?

1:如果你是在本机运行,可以这么做,写一个通讯客户端(只用来测试握手的)

代码是我临时引用别人的,我的在服务器上不好拿下来。

import java.io.DataInputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.OutputStream;  
import java.ConnectException;  
import java.URL;  
import java.security.cert.CertificateException;  
import java.security.cert.X509Certificate;  
  
import javax.ssl.HostnameVerifier;  
import javax.ssl.HttpsURLConnection;  
import javax.ssl.SSLContext;  
import javax.ssl.SSLSession;  
import javax.ssl.TrustManager;  
import javax.ssl.X509TrustManager;    
  
public class HttpsTest {  
    private stat

本文标签: 与众不同异常原因receivedHTTPS