将自签名https证书添加到teamcity后,TeamCity构建代理将断开连接

时间:2013-02-20 12:47:01

标签: security https teamcity teamcity-7.0 build-agent

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

https://ServerUrl:8443

(有关here

的详细信息

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

2 个答案:

答案 0 :(得分:22)

构建代理充当构建服务器的客户端并使用http / https与之通信,结果是当您添加自签名证书时,构建代理不接受它。

我需要

  1. 让构建代理知道与服务器通信的新路径
  2. 让构建代理知道它可以信任自签名证书
  3. 要更改路径,我执行了以下操作(有关详细信息,请参阅this post

      

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

      更改财产
       serverUrl = http:\:// localhost \:8080 到您的新网址

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

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

    除非你更改了它,密钥库受密码保护:更改

    TeamCity小组详细介绍了此过程here

    注意
    如果您需要从TeamCity构建服务器密钥库中检索证书,还可以使用keytool执行此操作

    keytool -export -alias <alias name>  
            -file <certificate file name> 
            -keystore <Teamcity keystore path>
    

答案 1 :(得分:4)

以下是关于keytool的TeamCity v8文档的link

我在Windows Build Agent上执行此操作,并在我的Amazon Linux Build Server上拥有自签名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. 重新启动构建代理和中提琴!