更新时间:2024-11-11 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协议版本。
处理方法
- 在Git Bash客户端执行如下命令,查看您的Git版本。
git --version
- 如果您的Git版本低于2.6.0,请将您本地的Git客户端升级到最新版本,最新版本的Git客户端默认支持TLSv1.2协议。如果您的Git版本不低于2.6.0,您也可以使用如下命令指定TLS协议的版本。
openssl s_client -connect test.com:443 -tls1_2
客户端 |
说明 |
---|---|
Git Credential Manager for Windows< v1.14.0 |
默认不支持TLSv1.2可以通过更新到最新版Git客户端来解决,最新版版本的GitBash自带Git-Credential-Manager功能,只需要在安装时勾选即可。 |
Git on Red Hat 5 |
|
Git on Red Hat 6 |
默认不支持,升级版本至6.8(或更高)可支持。 |
Git on Red Hat 7 |
默认不支持,升级版本至7.2(或更高)可支持。 |
JDK7 |
默认情况下为TLSv1,运行的任何客户端(例如Eclipse自带的JGit这样的流行客户端)都会受到影响,可明确选择TLSv1.2来解决。 |
JDK6及以下 |
|
Visual Studio |
|
父主题: 认证鉴权问题