自学内容网 自学内容网

javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version

查了一上午,这个错误的原因好像是 发送端和接收端采用的 TLS 协议版本不一致导致的:

解决步骤

  1. 确认双方使用的 TLS 协议版本
  2. 更改一方的 TLS 使两方相同

1.确认双方使用的 TLS 协议版本

捣鼓了半天,终于发现一个简单靠谱的方法来确认双方的 TLS 版本

感谢这篇博客:类似 java -Djavax.net.debug=SSL,handshake,data,trustmanager MyApp 如何在Eclipse下运行-CSDN博客

1. 点击 【run】旁边的下拉小箭头

2. 打开 【Run Configures】> 【Arguments】

3. 在 【VM Arguments】 最后追加 -Djavax.net.debug=ssl:handshake , 保存

4. 重启 server

5. 在 Console 里查看自己启用的协议版本

接收端的版本是 TLSv1.2的, 所以我需要调整我的为 TLSv1.2的

2. 更改己方协议为 TLSv1.2 版本

更改方法: 在上面提到的 【VM Arguments】里追加下面的 配置

-Dhttps.protocols=TLSv1.2

重启 server

起效了, 对方的接口调起来了(之前调不起来,报标题的错误)


原文地址:https://blog.csdn.net/moamao_jishuyuan/article/details/144057234

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!