java - 发布到合流时 Jenkins SSLHandshakeException

标签 java ssl jenkins confluence

我们最近更改了所有证书,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/

相关文章:

jenkins - 有没有办法模拟 Jenkins 管道作业的读写锁?

java - 在可变对象的 getter 中进行深度复制

web-services - 如何在生产中处理 SSL 服务器证书?

java - 一个 bean 中的作用域单例以及其他依赖 bean 的原型(prototype)

ssl - Docker 推送到 Artifactory 失败 - 无法 ping resgistry 端点

java - 如何从位于负载均衡器后面的 tomcat 服务器检索端口号

python - 使用 supervisord 管理 docker 容器的最佳方法

groovy - Jenkins boolean 参数在 groovy 中始终为真

java - Spring 框架 - GET 和 POST 之间的区别

java - 如何从非 Activity 或 fragment 类的资源文件中获取字符串