问题
在是用git克隆仓库的时候,报错如下:
fatal: unable to access ‘https://github.com/........../‘: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
解决方案
env命令设置GIT_SSL_NO_VERIFY环境变量为”ture”,并同时调用正常的git的clone命令,即在git里输入:
1 export GIT_SSL_NO_VERIFY=true 2 git clone https://host_name/git/project.git 3 或者写成一行 4 env GIT_SSL_NO_VERIFY=true git clone https://host_name/git/project.git
在clone完毕的仓库中将http.sslVerify设置为"false":
git config http.sslVerify "false"
说明
当你通过HTTPS访问Git远程仓库的时候,如果服务器的SSL证书未经过第三方机构(例如:CA)签署,那么Git就会报错。原因是因为未知的没有签署过的证书意味着可能存在很大的风险。但是如果你正好在架设Git服务器,而正式的SSL整数没有签发下来,你为了赶时间生成了自签署的临时证书,上面方法就是最便捷的测试手段。
上面方法应该是Git处理可信任的SSL临时证书的很好方案,第一步用env命令保证了忽略整数错误是单行行为,不会成为默认设置。第二步则把忽略证书错误的设置限定在特定的仓库,避免扩大应该设置的适用范围而引起的潜在安全风险。