18

我向我的 Teamcity BuildServer 添加了一个自签名证书以引入 https 支持,以便现在可以在

https://ServerUrl:8443

(有关此处的更多详细信息)

结果是我能够通过 https 访问服务器,但我的构建代理现在已断开连接。如何解决这个问题?

4

2 回答 2

23

构建代理作为构建服务器的客户端工作,并使用 http/https 与它通信,事实证明,当您添加自签名证书时,构建代理不接受它。

我需要

  1. 让构建代理知道与服务器通信的新路径
  2. 让构建代理知道它可以信任自签名证书

要更改路径,我执行了以下操作(有关更多详细信息,请参阅此帖子

找到文件:
$TEAMCITY_HOME/buildAgent/conf/buildAgent.properties

将属性
serverUrl=http:\://localhost\:8080更改为您的新 url

为了让构建代理知道它可以信任新证书,我必须将其导入构建代理的密钥库。这是使用 keytool 完成的:

keytool -importcert -file <cert file>  
        -keystore <agent installation path>/jre/lib/security/cacerts

除非您已更改,否则密钥库受密码保护:changeit

TeamCity 团队在这里更详细地描述了这个过程

注意
如果您需要从 TeamCity buildserver 密钥库中检索您的证书,您也可以使用 keytool 来执行此操作

keytool -export -alias <alias name>  
        -file <certificate file name> 
        -keystore <Teamcity keystore path>
于 2013-02-20T12:47:01.070 回答
5

这是keytool 上 TeamCity v8 文档的链接。

我在 Windows 构建代理上执行此操作,并在我的 Amazon Linux 构建服务器上拥有自签名 SSL 证书。以下是我采取的步骤:

  1. 在 Build Agent 上的浏览​​器中构建服务器,即https://teamcity.example.com
  2. 点击URL中的证书错误,将证书下载到本地机器
  3. 将 Windows 中证书资源管理器中的证书导出到 cer 文件中。
  4. 完全按照文档中的说明使用 keytool

    > keytool -importcert -file <cert file where it was exported to> 
      -keystore <path to JRE installation>/lib/security/cacerts
    password: changeit
    
  5. 重新启动构建代理和中提琴!

于 2014-01-02T21:46:53.610 回答