我们最近更改了所有证书,Jenkins 似乎也受到了影响。它无法发布到 confluence 并给出以下错误:
ERROR: Publisher com.myyearbook.hudson.plugins.confluence.ConfluencePublisher aborted due to exception
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: 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
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: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
我们对内部服务使用自签名证书。我使用 keytool 命令将新证书添加到运行 jenkins 的服务器的信任库中。问题仍然存在。 我现在无法追踪问题的根源。 任何帮助将不胜感激。
谢谢, 三字格
最佳答案
我终于明白了。受信任 keystore 的位置存在问题。 最好始终将证书添加到/var/lib/jenkins/.keystore 而不是添加到 PATH_TO_JAVA_HOME/jre/lib/security/cacerts。如果您仍想将证书添加到 cacerts 中,则应在应用程序的配置文件中添加一个 ARG:
JAVA_ARGS="-Djavax.net.ssl.trustStore=/usr/lib/jvm/java-7-oracle/jre/lib/security/cacerts"
有时您可能需要在 ~/.keystore 中添加证书
关于java - 发布到合流时 Jenkins SSLHandshakeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23116857/