我们使用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。
提前感谢您的帮助!
答案 0 :(得分:6)
我通过将新证书添加到java的默认信任库来解决了同样的问题:
并将其导入java默认信任库:
keytool -import -trustcacerts -file <ca_file> -alias <CA_ALIAS> -keystore $JAVA_HOME/jre/lib/security/cacerts
检查$ JAVA_HOME路径是否正确,可以用绝对路径替换它。 truststore(cacerts)的默认密码是:changeit
有关java keytool的更多信息:here
如果您没有ca_file,请检查此post
对于在Windows下安装的TeamCity代理,请将“agent_installation_path / jre”用作“JAVA_HOME”。 Source