SourceTree 和 Stash:无法获取本地颁发者证书
Posted
技术标签:
【中文标题】SourceTree 和 Stash:无法获取本地颁发者证书【英文标题】:SourceTree and Stash: Unable to get local issuer certificate 【发布时间】:2014-09-12 08:38:03 【问题描述】:我们在 Windows 2008R2 服务器上安装了 Atlassian Stash,大部分情况下一切运行良好。我们有一个由本地本地 CA 颁发的 SSL 证书和一个 DNS 条目设置,因此我们可以转到 https://stash/
,它工作得非常好,除了在 Firefox 中它会引发警告(相关?)。
使用 Atlassian 的 Sourcetree 时,我们可以导航并选择一个存储库,但是当我们尝试克隆它时,我们会收到以下错误:
致命:无法访问
https://user@url/scm/etc/etc.git
: SSL 证书问题:无法获取本地颁发者证书
如果我也从 git bash 中尝试,我会得到同样的错误。基于此错误,我尝试following the instructions 将 SSL 证书作为also found on their website 添加到 Git,包括 cmets 中的内容,但无济于事。我已经通过 Firefox 和 MMC 证书管理单元导出了证书,得到了相同的结果并将其放入自己的文件中,与 curl 文件结合使用,无论如何都会出现此错误。我还没有尝试让它与 SSH 密钥一起工作,因为我希望让我的团队更容易做到这一点。
我也尝试使用ssh myserver 并接受连接,然后输入密码并重新启动;还是一样的错误。
我也不想简单地ignore certificate validation,因为那似乎有点毫无意义。
如何使用我们的 CA 颁发的证书进行此操作?
【问题讨论】:
【参考方案1】:在与直到今天还在工作的同行合作后,我发现我一直只使用服务器本身的证书。我对所有文章的 [错误] 理解是,类似于处理自签名证书,您只需告诉 Git 信任此证书。我们不是这样的。
相反,我应该导出并告诉 Git 信任的是我们域中的根 CA 证书。我发誓我上周早些时候在这一切刚开始时就尝试过,但遗憾的是我不能这样做。
让这对任何发现自己处于我位置的人发出警告!
【讨论】:
谁能给我一个链接来显示如何做到这一点?我尝试按照此处的说明进行操作,但没有任何运气:blogs.msdn.microsoft.com/phkelley/2014/01/20/… 与@jessieloo 相同的问题:“你如何教git 信任(本地)bitbucket 域的根CA 证书?” - 你介意详细说明那个 squid808 吗? 对不起@vrms - 这是很久以前的另一份工作。 IIRC,我遵循了相同的说明,但使用了根 CA 证书。我希望这可以帮助您足够接近!【参考方案2】:我刚刚禁用了 SSL 证书检查(这对于内部存储库来说很好):
Tools > Options > Git > Disable SSL certificate validation (ticked)
【讨论】:
这违背了 SSL 的目的,并将您暴露给中间人攻击。 @Stoyan 正如我所说,对于内部流量,这很好。如果您有一个内部人员参与中间攻击,那么您遇到的问题比嗅探您的代码提交的人要大得多。如果你是远程贡献,那么就有风险,这可能不是什么大问题,例如,如果它是开源的——可能发生的最坏情况是什么?他们在你的提交中放了一些垃圾,后来的拉取请求被拒绝了。嗯。【参考方案3】:您需要为您的服务使用完整的链证书,这不仅意味着您的证书,还意味着证书文件中的中间证书和根证书
【讨论】:
【参考方案4】:Sourcetree > 首选项 > Git 勾选“禁用 SSL 证书验证”:
【讨论】:
以上是关于SourceTree 和 Stash:无法获取本地颁发者证书的主要内容,如果未能解决你的问题,请参考以下文章