修复windows下Git Self Signed Certificate in Certificate Chain

在新手使用git clone的时候,可能会遇到一下这个报错:

SSL certificate problem: self signed certificate in certificate chain
SSL certificate problem: unable to get local issuer certificate

这时候比较简单粗暴的做法是直接不启用SSL认证,命令我为你准备好了

git config --global http.sslVerify false

但这么一来就会带来安全风险。比较好的solution是为Git加上受信证书。下面我们来看看一个例子。
使用Chrome打开GitHub,点击代表安全认证的锁头图标。
在弹出的菜单列表中,点击Certificate

image.png

在我的示例中,您会注意到GitHub上方的两个认证路径。
我们需要对两个认证路径执行以下步骤。
单击第一个PaloAltoTrust(或您的等效)证书。
在同一窗口上,单击“View Certificate”按钮。

image.png

单击新窗口上的“Detail”选项卡,然后单击“Copy to File”按钮
image.png

在Export Wizard 点击“Next”
image.png

选择 Base 64 Encoded
image.png

随便选择一个临时存放证书文件的路径,点击“next”,然后“Finish”。你可以在结束后将这些文件删除。
image.png

注意:如果GItHub上有多个层级的证书列表,请重复以上步骤,将各个层级的证书导出来
Git使用名为的文件ca-bundle.crt列出所有受信任的证书。我们可以通过在终端窗口中键入以下内容来找到该文件:

git config --list --show-origin

在列出的信息中,我们可以找到ca-bundle.crt文件的存放路径,这个例子中的路径是C:\Program Files (x86)\Git\mingw32\ssl\certs\ca-bundle.crt。让我们将其复制到新位置。我要把我的复制到C:\Users\Matt\ca-bundle.crt。您可以通过GUI或如下所示的终端来执行此操作:

copy "C:\Program Files (x86)\Git\mingw32\ssl\certs\ca-bundle.crt" c:\Users\Matt\ca-bundle.crt

您将需要将Matt更改为您的用户名。
使用您喜欢的文本编辑器,您可以打开ca-bundle.crt复制的.cer文件和从浏览器导出的文件。将.cer包括----BEGIN CERTIFICATE---和在内的整个文本复制----END CERTIFICATE---到ca-bundle.crt文件底部。对.cer导出的所有文件执行此操作.
我们还有最后一步要完成。回到终端中,将您复制的内容添加ca-bundle.crt到Git的配置中。

git config --global http.sslCAInfo C:/Users/Matt/ca-bundle.crt

现在,您应该能够使用git clone而不损害安全性的情况下访问GitHub 。试一试。
如果您发现此帖子有帮助,请与他人分享。这是我能要求的最好的感谢,这给了我不断写作的动力!
[转载自](https://mattferderer.com/fix-git-self-signed-certificate-in-certificate-chain-on-windows

你可能感兴趣的:(修复windows下Git Self Signed Certificate in Certificate Chain)