问题描述
我的 jenkins 正在运行 docker-compose
(根据此 Link 托管)。我正在尝试通过 jenkins
将 slack
与 Slack Notification Plugin -2.45
集成。下面是我在 jenkins 中启用的 slack 配置的快照。
Test Connection
总是返回 Failure
。在 Jenkins ssl certificate error
部分的 System Log
下方。
Error posting to Slack
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.dobuild(PKIXValidator.java:445)
Caused: sun.security.validator.ValidatorException: PKIX path building Failed
at sun.security.validator.PKIXValidator.dobuild(PKIXValidator.java:450)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:317)
at sun.security.validator.Validator.validate(Validator.java:262)
at sun.security.ssl.x509trustmanagerImpl.validate(x509trustmanagerImpl.java:330)
at sun.security.ssl.x509trustmanagerImpl.checkTrusted(x509trustmanagerImpl.java:237)
at sun.security.ssl.x509trustmanagerImpl.checkServerTrusted(x509trustmanagerImpl.java:132)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
Caused: javax.net.ssl.SSLHandshakeException
我的 docker-container 图像低于 java version
# docker exec -it jenkins java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08,mixed mode)
我使用 Plugin Manager
协议安装来自 https
的新插件没有问题。
为了修复证书错误,我已将 https://updates.jenkins.io/update-center.json
更改为 http
,但同样的问题仍然存在。
我们的网络代理团队确认已允许访问 slack.com:443
。
如何在我的 docker-jenkins
中解决此问题?任何指针都会有所帮助。
解决方法
使用 dockerfile
命令创建 COPY ./cacerts /usr/local/openjdk-8/jre/lib/security/
,现在 Jenkins 和 Slack 连接有效。