2013-02-20 32 views

回答

17

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

我需要

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

要更改路径我做了以下操作(有关更多详细信息,请参见this post

Loca TE文件:
$ TEAMCITY_HOME/buildAgent/conf目录/ buildAgent.properties

更改属性
的serverUrl = HTTP:\://本地主机\:8080至新网址

为了让生成代理知道它可以信任的新证书,我不得不将它导入生成代理的主要store.This使用密钥工具完成的:

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

,除非你已经改变了它的密钥库是由密码保护:的changeit

的TeamCity的团队描述了稍微详细here

注意
如果您需要检索您的证书,这个过程从TeamCity的buildserver密钥库,您还可以使用密钥工具来做到这一点

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

由于某种原因,我不必做第2步......第1步在TC9上已经足够了。 – archangel76 2014-12-19 19:50:16

+0

当我最初编写这篇文章时,我们正在使用TC7(我已将TC版标记添加到原始问题) – 2015-08-19 09:25:38

3

这里是一个link转换为keytool上的TeamCity v8文档。

我在Windows Build Agent上执行此操作,并在我的Amazon Linux Build Server上拥有自签名SSL证书。这里是我采取的步骤:

  1. 去构建服务器在浏览器上建立代理即https://teamcity.example.com
  2. 单击URL中的证书错误并将证书下载到本地计算机
  3. 将证书资源管理器在Windows中的证书导出到cer文件中。
  4. 使用完全一样重新开始生成代理和中提琴的文档

    > keytool -importcert -file <cert file where it was exported to> 
        -keystore <path to JRE installation>/lib/security/cacerts 
    password: changeit 
    
  5. 中指定的密钥工具!