TeamCity和Mercurial https

时间:2014-09-26 15:27:23

标签: ssl https mercurial continuous-integration teamcity

我尝试通过https从TeamCity连接到Mercurial存储库。 但我不能,因为出现错误: stderr:abort:错误:_ssl.c:577:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败。 如何禁用TeamCity的证书验证? 或者我如何解决这个问题? 我曾尝试从IE加载sertificate并将其放在Mercurial的cer文件中,但它无法解决我的问题。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

我错过了很长时间的事情是即使您将证书导入受信任的根证书颁发机构,这也不会影响本地系统帐户,如果您已设置,TeamCity正在运行它可以作为一种服务运行。

让本地系统帐户信任证书的完整步骤在this answer,但我会在此简要再现:

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

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

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

  4. 最后一点:您可以使用PSTools中的psexec.exe作为本地系统运行PowerShell,并且在返回TeamCity之前测试工作正常:(Reference)

    psexec -i -s Powershell.exe