通过 https 的 git 操作的 SSL 证书错误

Phanix
·
·
IPFS
·

对remote git repository 存取,可以透过ssh 或https,有时候用https 的时候会遇到Error

原因

如果是透过https 来对remote repository 做操作,例如git clone https://git.domain.com/xxoo.git,有时候会有类似“SSL certificate problem: unable to get issuer certificate” 这样的讯息出现。主因是当透过https 时,git client 会去检查server 的ssl 凭证签署单位是不是在本机的清单当中。所以如果是用self-signed 的ssl 凭证,或者是签属单位没在清单中,就会有这个错误出现。

最懒惰的解决方式

$ git config --global http.sslverify false

但这个方式等于关闭所有的ssl 验证,并不是很安全。

正常的解决方式

因为公司里面用godaddy 的凭证,所以就以godaddy 的当作例子。

  • Linux (用ubuntu 16.04 当例子)
     $ wget https://certs.godaddy.com/repository/gdig2.crt.pem # from Godaddy Cert repository https://certs.godaddy.com/repository
    $ sudo mv gdig2.crt.pem /usr/local/share/ca-certificates/gdig2.crt
    $ sudo update-ca-certificates
    
  • windows git bash console
     # 先从Godaddy Cert repository https://certs.godaddy.com/repository 下载https://certs.godaddy.com/repository/gd_bundle-g2.crt
    $ git config --global http.sslCAInfo PATH_TO_DOWNLOAD_CRT_FILE" #要移除设定的话可以git config --global --unset http.sslCAInfo
    

Original link: Phanix's Blog

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!