如何在cygwin(和一些linux发行版)上向git添加企业证书颁发机构(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.crt和其他捆绑文件中,但在下一次Cygwin更新时,问题再次出现。

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

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

如果编辑这些文件,每次运行Cygwin安装程序并且ca证书包有更新时,它们都会被覆盖。

正确/正确的解决方案是将证书添加到拾取目录并运行拾取脚本,更新ca信任:

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

ca证书包的安装后脚本将在每次升级时自动重新运行更新ca信任脚本。更多信息:

man update-ca-trust

更简单的指令:

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

  2. 运行update-ca-trust extract。这将生成各种文件,使一切正常工作。

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

注意:如果您的组织是少数使用扩展BEGIN TRUSTED文件格式的专用证书的组织之一(其中可能包含不信任/黑名单信任标志,或用于TLS以外用途的信任标志),那么步骤1中会有一些细微的变化。基本上,将证书复制到目录/etc/pki/ca-trust/source/中。将它们复制到"常用"位置,然后在"常用"目录不起作用的情况下将其移动,这样做没有害处。

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

最新更新