如何将自定义证书添加到 Jenkins 内部 JDK?

How to add custom certificates to Jenkins internal JDKs?

我对 Jenkins 有疑问。

我在 master/slave 环境中使用当前的 LTS 版本 (2.60.2)(Master:Debian 没有工人,Slave1:Windows 8 个工人,Slave2:Debian 8 个工人)。

Jenkins Master 使用 SSL 来保护通信并配置为正常工作。其他服务器(SonarQube、Nexus)使用自定义 SSL 证书来保护与这些系统的通信。

现在,我遇到了问题。我使用 Gradle 的构建管道必须使用 JDK 和我在 cacerts 中的根证书才能与 SSL 安全系统正确通信。我可以通过 google 找到的唯一解决方案是安装 JDKs,然后将证书添加到信任库。每次 JDK 更新后都必须重做。

此解决方案工作正常,但不是使 JDK 保持最新的理想行为。是否有可能将根证书自动附加到 Jenkins 的内部(构建)JDK,或者是否有必要在每台服务器上手动添加?

您可以将 jvm 进程配置为使用自定义 truststore/keystore 而不是依赖默认 jdk 文件。

明确一点:我说的是指向另一个 truststore/keystore 文件(你可以在任何你想要的地方拥有并且不会在 jdk 升级时被覆盖)。

一些信息 here(例如 javax.net.ssl.truststore 属性)。