使用Git,有没有办法告诉它接受自签名证书?
我使用https服务器来托管git服务器但是现在证书是自签名的.
当我第一次尝试在那里创建回购时:
git push origin master -f
Run Code Online (Sandbox Code Playgroud)
我收到错误:
error: Cannot access URL
https://the server/git.aspx/PocketReferences/, return code 22
fatal: git-http-push failed
Run Code Online (Sandbox Code Playgroud) 我在Windows上使用git.我安装了msysgit包.我的测试存储库在服务器上有一个自签名证书.我可以使用http访问和使用存储库而不会出现问题.移至https会出现错误"SSL证书问题:无法获取本地颁发者证书".
我在Windows 7客户端计算机的受信任的根证书颁发机构中安装了自签名证书.我可以浏览到Internet Explorer中的https存储库URL,没有错误消息.
本博客http://blogs.msdn.com/b/phkelley/archive/2014/01/20/adding-a-corporate-or-self-signed-certificate-authority-to-git-exe-s-store. aspx解释说curl不使用客户机的证书存储区.我按照博客文章的建议创建了curl-ca-bundle.crt的私有副本,并配置git来使用它.我确信git正在使用我的副本.如果我重命名副本; git抱怨文件丢失了.
我粘贴在我的证书中,如博客文章中所述,我仍然收到"无法获得本地颁发者证书"的消息.
我通过https克隆了一个GitHub存储库,验证了git仍在工作.
我唯一看到的与博客文章不同的是我的证书是根证书 - 没有链条可以达到它.我的证书最初来自于单击IIS8 IIS管理器链接"创建自签名证书".也许这使得证书在某种程度上与curl期望的不同.
如何获得git/curl接受自签名证书?
目前.gitconfig,我的用户目录中有以下条目.
...
[http]
sslCAInfo=C:\\Users\\julian.lettner\\.ssh\\git-test.pem
...
Run Code Online (Sandbox Code Playgroud)
这设置了在与git服务器交互时使用的证书(我公司的git服务器所需).
但是现在我无法克隆其他存储库(例如GitHub上的公共存储库),因为客户端始终使用被其他服务器拒绝的已配置证书.
我如何规避此认证问题?我可以配置Git使用Windows证书存储区进行身份验证吗?
升级到 Azure DevOps Server 2019 后,自动管道构建在 NuGet 还原步骤失败,显示:
错误:错误:无法获得本地颁发者证书
无法恢复软件包
Microsoft 的文档指出,在 Windows 上运行的构建代理使用 Windows 证书存储,因此我检查了构建服务器上是否正确安装了所需的证书,但它仍然失败。
有许多问题具有相似的症状,但原因却不尽相同。经过调查,我找到了解决方案,但我没有在这个确切的问题上发现任何东西,所以我会发布一个答案,希望可以为其他人节省一些时间!
ssl-certificate nuget-package-restore azure-pipelines azure-devops-server-2019
本博客介绍了如何在 Chrome 和 Firefox 中保存 SSL 证书。但我无法遵循它(我的操作系统是Mac)。我不确定这是否是因为 mac 和 windows 之间的差异。有人可以告诉我如何在 Mac 上保存 SSL 证书吗?
https://medium.com/@menakajain/export-download-ssl-certificate-from-server-site-url-bcfc41ea46a2
git ×3
windows ×2
certificate ×1
curl ×1
firefox ×1
https ×1
macos ×1
msysgit ×1
self-signed ×1
ssl ×1