2013-02-20 36 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. 中指定的密鑰工具!