发布到 Slack 时出错 - Docker jenkins 无法找到有效证书

Error posting to Slack - Docker jenkins unable to find valid certificate

我的 jenkins 运行 到 docker-compose(按此 Link 托管)。我正在尝试通过 Slack Notification Plugin -2.45jenkinsslack 集成。下面是我在 jenkins 中启用的松弛配置的快照。

Test Connection 总是 returns Failure。在 Jenkins System Log 部分的 ssl certificate error 下方。

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-容器映像低于 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)

我可以使用 https 协议从 Plugin Manager 安装新插件。

为了修复证书错误,我已将 https://updates.jenkins.io/update-center.json 更改为 http,但同样的问题仍然存在。

我们的网络代理团队确认已允许访问 slack.com:443

如何解决 docker-jenkins 中的这个问题?任何指针都会有所帮助。

使用 COPY ./cacerts /usr/local/openjdk-8/jre/lib/security/ 命令创建 dockerfile,现在 Jenkins 和 Slack 连接正常。