一、目的
最近在公司内使用Jenkins时,最开始用的lts-jdk17版本,出现了ssl错误,java验证签名的相关问题,根据AI和网上的说明进行相关配置还是有问题,同时还存在清华源、阿里、华为云不可用,最后测试华为云最新版本需要对应jdk21+以上的jenkins才可用,这里记录一下问题解决过程。

二、Jenkins相关问题
2.1 配置插件源不可用
一开始使用的国内插件源如下,发现不可用了报404错误:
bash
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
可快速验证某镜像源是否存活:
bash
curl -v "https://mirrors.huaweicloud.com/jenkins/updates/update-center.json"

最后测试多家镜像源,同时翻了一下网上帖子,截至2026年6月,国内部分 Jenkins 镜像源仍可用,但并非全部稳定;清华、阿里、腾讯等源常出现 404 或元数据未同步,华为云镜像源相对可靠,建议优先使用或准备离线安装方案。
解决方案:
1、使用华为云镜像源,但配置时地址需要注意
bash
#错误地址
https://mirrors.huaweicloud.com/jenkins/updates/update-center.json
#可用地址(截止:2026-05-29)
https://mirrors.huaweicloud.com/jenkins/update-center.json
**2、考虑自建内网镜像站或使用代理缓存(如Nexus)(**这里就不演示了)
3、手动导入插件地址
虽然各种镜像源的自动更新站点不可用,但镜像仓库插件还可用,也可以通过手动导入相关插件到Jenkins,这个适合自己测试玩。如下插件



2.2 如果配置https镜像源时,提示ssl问题,可启用" 忽略签名验证 "
在docker环境下可以配置如下yaml文件:
bash
version: '3.2'
services:
web:
image: 'jenkins/jenkins:lts-jdk21'
container_name: 'jenkins'
restart: always
environment:
- JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true
ports:
- '8080:8080'
- '50000:50000'
volumes:
- './jenkins_home:/var/jenkins_home'
- '/var/run/docker.sock:/var/run/docker.sock'
2.3 更新低版本的jenkins
jenkins更新日新月异,迭代和更新的速度很快,为了保障系统的安全和稳定,我们经常需要更新到新的版本上去,但历史构建信息需要保持不受影像,这里有两种更新方法;
1、jdk不变的情况下,可以通过jenkins的war包进行更新
- 停止 Jenkins 服务 (如 systemctl stop jenkins),避免替换时文件被占用;
- 备份当前 jenkins.war 和整个 JENKINS_HOME (默认 /var/lib/jenkins),以防回滚;
- 下载目标版本的官方 WAR 包 (如 LTS 版从 https://www.jenkins.io/download/ 或镜像站获取);
- 替换原 WAR 文件 (路径通常为 /usr/lib/jenkins/jenkins.war 或 /usr/share/jenkins/jenkins.war,可通过 ps aux | grep jenkins 确认);
bash
#备份
cp jenkins.war jenkins.war.back
#复制war包到jenkins文件夹下
mv /usr/jenkins.war /usr/share/jenkins
ps:如果是window环境下安装,直接替换 JENKINS_HOME下的war的文件夹即可;
- 启动服务并验证 (systemctl start jenkins,访问 Web 界面检查版本与插件兼容性)。
2、跨Jdk多版本更新jenkins
a、首先需要备份数据:
1、配置文件 :通常位于JENKINS_HOME目录。 2、**构建数据** :存储在JENKINS_HOME/jobs目录。
3、插件 :可以通过Jenkins的插件管理界面导出插件列表。
b、升级JDK,升级JDK本身并不直接影响Jenkins的数据,但确保新版本的JDK与旧版本兼容是很重要的。 - 验证兼容性:查看Jenkins的官方文档,确认JDK 21是否兼容当前的Jenkins版本(例如,LTS版本或最新稳定版本)。
- 环境准备:在升级之前,在非生产环境(如测试服务器)上安装JDK 21,并验证其与现有Jenkins设置的兼容性。
- dokcer更新:直接下载最新的容器镜像,更新即可;
c、更新jenkins, 在确认JDK兼容性后,更新Jenkins到支持JDK 21的版本。在window上需要确保 JAVA_HOME 和 PATH 环境变量指向新的JDK 21。在docker中替换最新镜像即可。
d、恢复数据。在新安装的Jenkins实例上恢复之前备份的数据: - 配置文件 :将备份的配置文件复制到新的$JENKINS_HOME目录。
- 插件:通过插件管理界面重新安装或导入之前备份的插件列表。
- 构建数据 :将备份的构建数据文件夹复制到新的$JENKINS_HOME/jobs目录。
通过以上步骤,你可以有效地从JDK 17升级到JDK 21,同时确保Jenkins的数据不丢失且系统稳定运行。
注意:跨多个主版本升级可能存在插件或配置兼容风险 ,建议先在测试环境验证;官方不推荐直接替换用于生产环境的非 LTS 跨大版本,优先考虑包管理器(如 apt/yum)或容器化部署以简化升级与回滚。
2.4 docker内部访问授权问题
想要通过docker进行备份或操作容器内部文件异常时,可通过如下命令进入容器;
bash
docker exec -it -u root jenkins /bin/bash
三、文章总结
现在网上遇到问题通过AI搜素进行处理,一些稍微复杂点的内容或则不常见的内容,他提供的内容有限,需要不断的提问,或则看一下它反馈的结果在进行验证。这次也是遇到问题后,AI帮助有限,因此记录一下错误处理过程。