更新TeamCity Server SSL证书后断开TeamCity Build Agent

时间:2014-03-23 11:26:29

标签: java https teamcity

我们使用TeamCity 7.1.5。我更新了TeamCity Server站点证书(用新的替换了 server.p12 文件)新的时间段,并且TeamCity Server与单个Agent失去了连接。代理状态为Disconnected,Authorized,Enabled。使用WEB浏览器,我导航到TeamCity站点并确保新证书有效。

进入 teamcity-agent.log 文件我看到许多类似的消息,示例:

" [2014-03-20 16:37:11,694] WARN - jetbrains.buildServer.AGENT - Ping problem: Call https://oursite.com/RPC2 buildServer.ping: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"

如何使用新证书修复此代理连接问题?

使用旧站点证书TeamCity正常工作。 我看到旧证书和新证书的细节有所不同。旧证书签名算法是具有RSA加密的PKC#1 SHA-1。新证书签名算法是具有RSA加密的PKC#1 SHA-256。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

我通过将新证书添加到java的默认信任库来解决了同样的问题:

并将其导入java默认信任库:

keytool -import -trustcacerts -file <ca_file> -alias <CA_ALIAS> -keystore $JAVA_HOME/jre/lib/security/cacerts
  • [tmpFile] - 生成文件的名称。
  • [servers-keystore] - 已配置的服务器密钥库
  • [CA_ALIAS] - 要在密钥库中标识的证书的别名
  • [ca_file] - 来自网站的ca_file(也许可以使用chrome expor)

检查$ JAVA_HOME路径是否正确,可以用绝对路径替换它。 truststore(cacerts)的默认密码是:changeit

有关java keytool的更多信息:here

如果您没有ca_file,请检查此post

对于在Windows下安装的TeamCity代理,请将“agent_installation_path / jre”用作“JAVA_HOME”。 Source