如何在cygwin(以及一些Linux发行版)上添加企业证书颁发机构(CA)到git

时间:2014-10-27 14:58:33

标签: git ssl cygwin certificate ca

在Cygwin上使用git获取时,你会得到:

Fetching origin
fatal: unable to access 'https://.../...git': SSL certificate problem: self signed certificate in certificate chain
error: Could not fetch origin

证书已添加到/etc/ssl/certs/ca-bundle.crtother bundle files,但在下一次Cygwin更新时,问题再次出现。

2 个答案:

答案 0 :(得分:13)

git-remote-https将为ca证书阅读以下文件:

/etc/ssl/certs/ca-bundle.crt
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

如果您编辑这些文件,每次运行Cygwin设置并且ca-certificates包都有更新时,它们都会被覆盖。

正确/正确的解决方案是将证书添加到提货目录并运行提货脚本update-ca-trust:

curl -sL http://ca.pdinc.us  > /etc/pki/ca-trust/source/anchors/ca.pdinc.us.pem \
&& update-ca-trust

ca-certificates软件包的安装后脚本将在每次升级时自动重新运行update-ca-trust脚本。有关更多信息:

man update-ca-trust

答案 1 :(得分:3)

简单说明:

  1. 只需复制具有企业受信任证书的文件(例如.crt文件),然后将其复制到目录“ / etc / pki / ca-trust / source / anchors /”中。

  2. 运行“ update-ca-trust提取”。这将生成各种文件以使一切正常工作。

您可以在目录中添加或删除文件,然后重新运行“ update-ca-trust提取”。

注意:如果您的组织是少数使用扩展的BEGIN TRUSTED文件格式(可能包含不信任/黑名单信任标志,或TLS以外用途的信任标志)的专用证书的组织之一,则在步骤1.基本上,将证书复制到目录“ / etc / pki / ca-trust / source /”。将它们复制到“常规”位置并在“常规”目录不起作用时稍后再移动它们没有什么害处。

有关更多详细信息,请运行“ man update-ca-trust”。