You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Windows代理认为证书无效问题求助

Jenkins代理连接提示证书无效(Chrome认可证书)的解决方案

这个问题我之前也碰到过,核心原因是Java的证书信任机制和浏览器完全独立——Chrome用的是系统或自身的证书存储,而Jenkins代理依赖的Java Runtime(JRE)默认使用自己的cacerts信任库,你的有效证书并没有被导入到这个库中,所以Java会判定证书无效,哪怕浏览器能正常识别。

下面是不需要用-noCertificateCheck的解决步骤:

1. 从Chrome导出Jenkins服务器的证书

  • 打开Chrome访问你的Jenkins地址https://my-server.com:8888,点击地址栏左侧的锁图标
  • 选择「证书」→ 切换到「详细信息」标签页
  • 点击「复制到文件」,选择「DER编码二进制X.509 (.CER)」格式,将证书保存到本地(比如C:\temp\jenkins-cert.cer)

2. 将证书导入Java的cacerts信任库

Java的cacerts文件通常在JRE的安装目录下,比如:
C:\Program Files\Java\jre1.8.0_381\lib\security\cacerts(路径根据你的Java版本调整)

需要以管理员身份打开命令提示符,执行以下命令:

keytool -import -alias jenkins-server -file C:\temp\jenkins-cert.cer -keystore "C:\Program Files\Java\jre1.8.0_381\lib\security\cacerts"
  • 输入默认密码:changeit(这是Java默认的cacerts密码,如果你修改过请用自定义密码)
  • 提示是否信任该证书时,输入yes确认

3. 验证证书导入是否成功

执行以下命令查看导入的证书信息:

keytool -list -alias jenkins-server -keystore "C:\Program Files\Java\jre1.8.0_381\lib\security\cacerts"

如果能看到证书的详细信息,说明导入成功。

4. 重新启动Jenkins代理

再次运行你之前的代理连接命令:

java -jar agent.jar -jnlpUrl https://my-server.com:8888/computer/myslave/slave-agent.jnlp -secret sdfsdfsdfsdf -workDir "c:\Jenkins"

此时应该不会再出现证书无效的提示了。

额外注意事项

  • 确保你操作的是Jenkins代理实际使用的Java版本对应的cacerts文件(如果代理用的是JDK而非JRE,路径是JDK目录\jre\lib\security\cacerts)
  • 如果你的证书是由中间CA签发的,仅导入服务器证书可能不够,需要将整个证书链(根CA+中间CA证书)都导入到cacerts中
  • 证书导入后,若后续证书更新,需要重复上述步骤重新导入新证书

内容的提问来源于stack exchange,提问作者red888

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:42:28