RedHat 5.2克隆GitHub仓库遇TLS问题及编译相关组件尝试
解决Red Hat 5.2无法克隆GitHub仓库的TLS兼容问题
如果你还在维护Red Hat 5.2系统,最近肯定碰到了GitHub克隆仓库失败的情况——从2024年2月1日起,GitHub彻底禁用了TLSv1和TLSv1.1协议,而RHEL5默认的组件不支持TLSv1.2,官方又只建议升级操作系统。但如果暂时没法升级,手动编译新版OpenSSL、curl和git就能解决问题,我已经亲测可行,步骤如下:
1. 编译安装支持TLSv1.2的OpenSSL 1.0.2a
RHEL5自带的OpenSSL版本太老,不支持TLSv1.2,所以第一步先替换它:
- 下载OpenSSL 1.0.2a源码包(对应2015年3月19日发布的版本)
- 解压后编译安装,指定自定义路径避免覆盖系统默认组件:
tar zxf openssl-1.0.2a.tar.gz cd openssl-1.0.2a ./config --prefix=/usr/local/openssl shared zlib make make install
- 替换系统默认的OpenSSL命令,并配置动态链接库:
# 备份旧版本 mv /usr/bin/openssl /usr/bin/openssl.old # 建立新版软链接 ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl # 添加新版库路径到系统配置 echo "/usr/local/openssl/lib" >> /etc/ld.so.conf.d/openssl.conf ldconfig
- 验证安装结果:执行
openssl version,输出应该显示OpenSSL 1.0.2a 19 Mar 2015
2. 基于新版OpenSSL编译curl 7.58.0
curl需要调用新版OpenSSL来支持TLSv1.2,所以要重新编译:
- 下载curl 7.58.0源码包
- 编译时指定依赖的OpenSSL路径:
tar zxf curl-7.58.0.tar.gz cd curl-7.58.0 ./configure --prefix=/usr/local/curl --with-openssl=/usr/local/openssl make make install
- 配置环境变量,让系统优先使用新版curl:
echo "export PATH=/usr/local/curl/bin:$PATH" >> ~/.bashrc source ~/.bashrc
- 验证curl的TLS支持:执行
curl -V,在输出的Protocols里应该能看到TLSv1.2
3. 编译新版git,关联新的OpenSSL和curl
最后编译新版git,让它使用支持TLSv1.2的依赖组件:
- 下载兼容的git版本(建议选择2.x系列,比如2.20.x左右,避免版本过高出现编译问题)
- 编译时指定OpenSSL和curl的路径:
tar zxf git-2.20.1.tar.gz cd git-2.20.1 ./configure --prefix=/usr/local/git --with-openssl=/usr/local/openssl --with-curl=/usr/local/curl make make install
- 更新系统PATH,让新版git生效:
echo "export PATH=/usr/local/git/bin:$PATH" >> ~/.bashrc source ~/.bashrc
- 验证功能:执行
git clone https://github.com/your-repo/your-project.git,现在应该能正常连接GitHub并克隆仓库了
注意事项
- 手动编译组件可能会和系统自带的工具产生冲突,建议先在测试环境验证后再部署到生产环境
- 如果后续系统有其他依赖OpenSSL的组件出现问题,可以暂时切换回旧版本(使用备份的
openssl.old)
内容的提问来源于stack exchange,提问作者bl4ckb0ne
相关产品推荐
相关产品推荐

