我用的是 SourceTree 作为Git客户端的,用它连接一个HTTPS证书过期的自建git服务,会收到下面错误:
abort: error: _ssl.c:507: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
fatal: repository ‘https://****/guohongjun/mytest/‘ not found
Error validating server certificate for ‘https://****:443‘:
- The certificate is not issued by a trusted authority. Use the fingerprint to validate the certificate manually!
- The certificate hostname does not match.
- The certificate has expired.
Certificate information:
- Hostname: *****
- Valid: from Thu, 12 Sep 2013 01:59:22 GMT until Fri, 12 Sep 2014 01:59:22 GMT
- Issuer: http://certs.godaddy.com/repository/, GoDaddy.com, Inc., Scottsdale, Arizona, US
- Fingerprint: a4:e0:66:ca:ba*******
(R)eject, accept (t)emporarily or accept (p)ermanently? svn: E175002: Unable to connect to a repository at URL ‘https://******/guohongjun/mytest‘
svn: E175002: OPTIONS of ‘https://*****/guohongjun/mytest‘: Server certificate verification failed: certificate has expired, certificate issued for a different hostname, issuer is not trusted (https://*****)
这是因为 SourceTree 新建仓库时,在 从URL 克隆时, 会去校验 ssl,如下图:
就是你在设置中设置了“禁止SSL校验也不行”
解决方案, 用命令行 clone 项目,然后通过添加已存在的本地仓库来使用。
Git 全局设置
git config --global user.name "郭红俊" git config --global user.email [email protected]***。**
创建仓库,并更新到远程服务器
mkdir mytest01 cd mytest01 git init touch README git add README git commit -m ‘first commit‘ git remote add origin http://*****/guohongjun/mytest01.git git push -u origin master
Existing Git Repo 存在本地 Git Repo
cd existing_git_repo git remote add origin http://118.194.63.8/guohongjun/mytest01.git git push -u origin master
在做远程服务器提交之前,需要执行下面命令,禁用SSL校验
git config --global http.sslVerify false
准备好本地库相关
提交到远程服务器
这时候,我们通过 新仓库 - 新建本地已经存在的仓库 方式就可以增加了。