Mac OS X 10.7.5下用Git 1.8.4.2安装Homebrew遇SSL问题求助
解决旧版Git(1.8.4.2)在Mac OS X Lion上的Homebrew SSL握手问题
你遇到的这个错误核心原因是:旧版本Git默认使用的TLS协议版本太老旧,而GitHub早已不再支持这些低版本协议。好在不用升级Git,通过调整Git的SSL配置就能解决,具体步骤如下:
临时解决(单次命令生效)
如果只是想临时完成clone或brew操作,可以在执行命令前添加环境变量,强制Git使用兼容的TLS版本和加密套件:
- 针对Git clone命令:
GIT_SSL_VERSION=TLSv1.2 GIT_SSL_CIPHERS='DEFAULT:@SECLEVEL=1' git clone https://github.com/Homebrew/brew.git - 针对brew命令:
GIT_SSL_VERSION=TLSv1.2 GIT_SSL_CIPHERS='DEFAULT:@SECLEVEL=1' /usr/local/homebrew/bin/brew install wget
永久解决(全局Git配置生效)
如果不想每次都手动加环境变量,可以把配置写入Git全局配置,之后所有Git操作都会自动应用这些设置:
git config --global ssl.version TLSv1.2 git config --global ssl.ciphers 'DEFAULT:@SECLEVEL=1'
设置完成后,直接执行git clone或brew命令即可,无需额外添加环境变量。
原理补充
旧版Git依赖的OpenSSL版本不支持高安全级别的加密套件,@SECLEVEL=1会降低SSL安全级别要求,让旧版OpenSSL能和GitHub服务器完成握手;TLSv1.2则强制使用GitHub仍支持的协议版本,避开已废弃的TLSv1.0等协议。
内容的提问来源于stack exchange,提问作者fullstackplus




