在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
更简单的指令:
-
只需复制带有企业可信证书的文件(例如
.crt
文件),然后将其复制到目录/etc/pki/ca-trust/source/anchors/
中。 -
运行
update-ca-trust extract
。这将生成各种文件,使一切正常工作。
您可以在目录中添加或删除文件,然后重新运行update-ca-trust extract
。
注意:如果您的组织是少数使用扩展BEGIN TRUSTED
文件格式的专用证书的组织之一(其中可能包含不信任/黑名单信任标志,或用于TLS以外用途的信任标志),那么步骤1中会有一些细微的变化。基本上,将证书复制到目录/etc/pki/ca-trust/source/
中。将它们复制到"常用"位置,然后在"常用"目录不起作用的情况下将其移动,这样做没有害处。
有关更多详细信息,请运行man update-ca-trust
。