九游平台/ 代码托管 codearts repo/ 常见问题/ 认证鉴权问题/ tls协议握手失败并报错"ssl handshake failure"
更新时间:2024-09-09 gmt 08:00

tls协议握手失败并报错"ssl handshake failure"-九游平台

问题现象

本地执行如下命令,与指定服务器建立tls1.0连接并获取其证书信息。

openssl s_client -connect test.com:443 -tls1

会出现如下报错信息:

connected(00000003)
140155533838224:error:1409442e:ssl routines:ssl3_read_bytes:tlsv1 alert protocol version:s3_pkt.c:1493:ssl alert number 70
140155533838224:error:1409e0e5:ssl routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:659:
---
no peer certificate available
---
no client certificate ca names sent
---
ssl handshake has read 7 bytes and written 0 bytes
---
new, (none), cipher is (none)
secure renegotiation is not supported
compression: none
expansion: none
no alpn negotiated
ssl-session:
    protocol  : tlsv1
    cipher    : 0000
    session-id: 
    session-id-ctx: 
    master-key: 
    key-arg   : none
    krb5 principal: none
    psk identity: none
    psk identity hint: none
    start time: 1720443876
    timeout   : 7200 (sec)
    verify return code: 0 (ok)
---

原因分析

codearts repo当前支持tls1.2、tls1.3协议版本。

处理方法

  1. 在git bash客户端执行如下命令,查看您的git版本。
    git --version
  2. 如果您的git版本低于2.6.0,请将您本地的git客户端升级到,最新版本的git客户端默认支持tlsv1.2协议。如果您的git版本不低于2.6.0,您也可以使用如下命令指定tls协议的版本。
    openssl s_client -connect test.com:443 -tls1_2

绝大多数流量不受此变化的影响。预计会有一些客户受到影响。大多数客户端都可以更新以使用tlsv1.2。

git-credential-manager-for-windows < v1.14.0

git-credential-manager-for-windows < v1.14.0不支持tlsv1.2。

可以通过更新到客户端来解决,最新版版本的gitbash自带git-credential-manager功能,只需要在安装时勾选即可。

git on red hat 5,<6.8和<7.2

red hat 5,6和7随git客户端一起提供,不支持tlsv1.2。这可以通过分别更新到版本6.8和7.2(或更高版本)来解决。不幸的是,red hat 5没有支持tlsv1.2的点发行版。建议red hat 5的用户升级到更新版本的操作系统。

java发布

如oracle博客文章中所述,默认情况下,tlsv1用于jdk8之前的jdk版本。jdk8更改了此行为,默认为tlsv1.2。在旧版本的jdk上运行的任何客户端(例如eclipse自带的jgit这样的流行客户端)都会受到影响。这可以通过更新到jdk> = 8或明确选择在jdk 7中的tlsv1.2来解决(查看https.protocols jsse调整参数)。不幸的是,jdk <= 6的版本不支持tlsv1.2。建议jdk <= 6的用户升级到较新版本的jdk。

visual studio

​visual studio附带了特定版本的git for windows和git credential manager for windows(gcm)。 microsoft已更新visual studio 2017的最新版本以与tlsv1.2 git服务器配合使用。建议visual studio用户通过单击产品内通知标志或直接从ide检查更新来升级到最新版本。 microsoft已在visual studio开发人员社区支持论坛上提供了其他指导。

第三方git图形客户端

如果您使用的是eclipse、jetbrains、sourcetree、vscode、tower、tortoisegit等第三方git客户端时,建议下载最新的gitbash客户端,在工具中设置使用原生(native)的git,而不是build-in类型。

  • idea设置方式

  • sourcetree设置方式

  • eclipse设置方式

相关文档

网站地图