Ssl TeamCity和Mercurial https

Ssl TeamCity和Mercurial https,ssl,https,mercurial,continuous-integration,teamcity,Ssl,Https,Mercurial,Continuous Integration,Teamcity,我尝试通过https从TeamCity连接到Mercurial存储库。 但我不能,因为出现了错误: stderr:abort:error:_ssl.c:577:error:14090086:ssl 例程:SSL3\u获取\u服务器\u证书:证书验证失败。 如何禁用TeamCity提供的sertificate验证? 或者我如何解决这个问题? 我已尝试从IE加载sertificate并将其保存在Mercurial的cer文件中,但它无法解决我的问题。只有在将Mercurial.ini放入目录C:\W

我尝试通过https从TeamCity连接到Mercurial存储库。 但我不能,因为出现了错误: stderr:abort:error:_ssl.c:577:error:14090086:ssl 例程:SSL3\u获取\u服务器\u证书:证书验证失败。 如何禁用TeamCity提供的sertificate验证? 或者我如何解决这个问题?
我已尝试从IE加载sertificate并将其保存在Mercurial的cer文件中,但它无法解决我的问题。

只有在将Mercurial.ini放入目录C:\Windows\System32\config\systemprofile后,我才能解决我的问题。
.hgrc的编辑不生效。只有将mercurial.ini放入C:\Windows\System32\config\systemprofile并将加载的证书添加到cacept.pem才能解决我的问题。

比禁用证书验证(如果可能)更好的是让mercurial知道您信任证书。(这是特定于Windows的答案)

多年来我一直忽略的一点是,即使您将证书导入受信任的根证书颁发机构,这也不会影响本地系统帐户,如果您已将其设置为作为服务运行,TeamCity将使用该帐户运行

获取本地系统帐户以信任证书的完整步骤如下所示,但我将在这里简要介绍这些步骤:

  • 首先,获取证书的副本。您可以从所有主浏览器将其导出到文件

  • 然后,从“开始”菜单运行mmc.exe。添加证书管理单元。如果TeamCity作为本地系统帐户运行,则需要管理“本地计算机”证书。如果TeamCity以普通用户身份运行,则需要管理用户证书

  • 导航到“受信任的根证书颁发机构”。然后单击“操作>所有任务>导入”并导入证书文件

  • 最后一点注意:在返回TeamCity之前,您可以使用中的psexec.exe作为本地系统运行powershell,并测试是否正常工作:


    您是否已按说明将证书路径添加到服务器计算机上的hgrc文件中?在TeamCity tracker中查看和评论。是的,我有,但它没有解决我的问题。可能重复
    psexec -i -s Powershell.exe