[解决] failed to receive handshake ssl/tls connection failed github

使用git在本地提交代码时出现:
在这里插入图片描述
解决方法:
在这里插入图片描述

附代码:

git config -- global http.sslBackend "openssl"
### 解析SSL/TLS连接突然关闭的问题 当遇到 `schannel: failed to receive handshake, SSL/TLS connection failed` 错误时,这通常意味着客户端无法完成与服务器的安全握手过程。此问题可能由多种因素引起,包括但不限于证书链验证失败、网络配置不当或加密库版本不兼容。 #### 使用OpenSSL替代SChannel 一种常见的解决方案是在Git环境中强制使用 OpenSSL 替代 Windows 自带的 SChannel 来处理 HTTPS 请求。通过设置全局配置参数可以实现这一点: ```bash git config --global http.sslBackend "openssl" ``` 上述命令会指示 Git 在发起 HTTP(S) 连接时优先选用 OpenSSL 库而非默认的 WinHTTP API[^3]。 #### 配置自定义CA证书路径 对于某些特定环境而言,指定可信 CA (Certificate Authority) 的根证书位置也是必要的操作之一。可以通过如下方式来设定全局有效的 CA 文件地址: ```bash git config --global http.sslCAInfo "C:\Program Files\Git\mingw64\ssl\cert.pem" ``` 这里假设 cert.pem 存放于标准 Git 安装目录下的相应子文件夹内;实际应用中应根据实际情况调整该路径以指向正确的PEM格式证书文件[^5]。 #### 更新本地Git及其依赖组件 考虑到安全性和稳定性方面的考量,保持软件处于最新状态总是明智的选择。定期更新 Git 及其关联工具包有助于修复已知漏洞并引入性能改进特性。可以从官方渠道获取最新的稳定版发行包来进行升级工作。 #### 检查防火墙和代理设置 如果企业内部部署有严格的安全策略,则需确认防火墙规则允许访问目标站点,并且任何中间件(如反向代理)不会干扰正常的TLS协商流程。必要情况下联系网管人员协助排查潜在障碍点。 #### 示例代码片段展示如何切换到OpenSSL后克隆仓库 ```bash # 切换至OpenSSL作为SSL后端处理器 git config --global http.sslBackend "openssl" # 尝试再次拉取远程资源 git clone https://github.com/tsitcn/ts-freetype2.git ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值