【问题标题】:TeamCity and Mercurial httpsTeamCity 和 Mercurial https
【发布时间】:2014-09-26 15:27:23
【问题描述】:

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

【问题讨论】:

标签: ssl https mercurial continuous-integration teamcity


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    我多年来一直想念的是,即使您将证书导入受信任的根证书颁发机构,这也不会影响本地系统帐户,如果您设置了 TeamCity 在该帐户下运行它可以作为服务运行。

    让本地系统帐户信任证书的完整步骤在 this answer 中,但我将在此处简要复制它们:

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

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

    3. 导航到“受信任的根证书颁发机构”。然后点击“Action > All Tasks > Import”,导入证书文件。

    最后一点:您可以使用来自PSTools 的 psexec.exe 作为本地系统运行 powershell,并在返回 TeamCity 之前测试一切是否正常:(Reference)

    psexec -i -s Powershell.exe
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多