导航

通过SourceTree连接SSL有问题的自建gitlab服务器

Posted on 2015-08-12 16:47  蝈蝈俊  阅读(7749)  评论(0编辑  收藏  举报

我用的是 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,如下图:

屏幕快照 2015-08-12 下午3.02.16

image

image

就是你在设置中设置了“禁止SSL校验也不行”

image

解决方案, 用命令行 clone 项目,然后通过添加已存在的本地仓库来使用。

 

Git 全局设置

git config --global user.name "郭红俊"
git config --global user.email guohongjun@***。**

 

创建仓库,并更新到远程服务器

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

 

准备好本地库相关

image

提交到远程服务器

image

这时候,我们通过 新仓库 - 新建本地已经存在的仓库 方式就可以增加了。

image