我在Teamcity BuildServer中添加了一个自签名证书,以引入https支持,因此现在可以在上访问它
https://ServerUrl:8443
(点击此处了解更多详情)
结果是,我可以通过https访问服务器,但我的构建代理现在已断开连接。如何解决此问题?
构建代理充当构建服务器的客户端,并使用http/https与之通信,结果发现,当您添加自签名证书时,构建代理不接受它。
我需要
- 让生成代理知道与服务器通信的新路径
- 让生成代理知道它可以信任自签名证书
为了改变路径,我做了以下操作(请参阅本文了解更多详细信息)
查找文件:
$TEAMCITY_HOME/buildAgent/conf/buildAgent.properties
更改属性
serverUrl=http:\://localhost\:8080到您的新url
为了让生成代理知道它可以信任新证书,我必须将其导入到生成代理的密钥存储中。这是使用关键工具完成的:
keytool -importcert -file <cert file>
-keystore <agent installation path>/jre/lib/security/cacerts
(除非您更改了密钥库,否则密钥库受密码保护:changeit)
TeamCity团队在这里稍微详细地描述了这个过程
注意
如果您需要从TeamCity构建服务器密钥库中检索证书,您也可以使用keytool来执行此操作:
keytool -export -alias <alias name>
-file <certificate file name>
-keystore <Teamcity keystore path>
这是keytool上TeamCity v8文档的链接。
我在Windows Build Agent上做这件事,在我的Amazon Linux Build Server上有一个自签名SSL证书。以下是我采取的步骤:
- 在build Agent上的浏览器中构建服务器,即。https://teamcity.example.com
- 单击URL中的证书错误并将证书下载到本地计算机
- 已将证书从windows中的证书资源管理器导出到cer文件中
-
完全按照文件中的规定使用密钥工具
> keytool -importcert -file <cert file where it was exported to> -keystore <path to JRE installation>/lib/security/cacerts password: changeit
-
重新启动了构建代理和viola!