问题描述
在设置Jenkins时,尝试安装插件时遇到了以下错误:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
他们已经尝试将受信任的证书直接导入到JVM中,但仍然出现相同的错误。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1: 更新Jenkins配置
- 登录到Jenkins控制台。
- 点击左侧菜单中的 “Manage Jenkins”。
- 选择 “Manage Plugins”。
- 切换到 “Advanced” 选项卡。
- 在 “Update Site” 部分,选择 “Hudson” 并点击 “Check Now” 按钮。等待一会儿,直到检查完成。
- 如果有更新可用,会显示在 “Available” 列表中。选中需要更新的插件,然后点击 “Download now and install after restart”。
- 完成后,重新启动Jenkins以应用更改。
方案2: 导入证书
- 确保你有正确的证书文件(如
.crt
或.pem
格式)。 - 登录到Jenkins服务器。
- 找到Java的安装路径,通常在
/usr/lib/jvm
或/usr/local/java
。 - 进入到Java安装路径下的
jre/lib/security
目录。 - 备份原始的
cacerts
文件:运行命令sudo cp cacerts cacerts.backup
。 - 导入证书到
cacerts
文件:运行命令sudo keytool -import -alias your_alias -keystore cacerts -file path_to_certificate_file
,将your_alias
替换为你想要的别名,path_to_certificate_file
替换为证书文件的完整路径。 - 在导入证书后,重启Jenkins服务:运行命令
sudo service jenkins restart
。
方案3: 设置JVM参数
- 编辑 Jenkins 的启动脚本,通常位于
/etc/default/jenkins
或/etc/sysconfig/jenkins
,取决于你的系统。 - 在脚本中找到
JENKINS_ARGS
行,添加以下JVM参数:
-Djavax.net.ssl.trustStore=/path/to/your/cacerts -Djavax.net.ssl.trustStorePassword=your_password
将/path/to/your/cacerts
替换为cacerts
文件的完整路径,将your_password
替换为cacerts
密码。 - 保存文件并重启Jenkins服务。
方案4: 使用插件管理器
- 进入Jenkins控制台。
- 点击左侧菜单中的 “Manage Jenkins”。
- 选择 “Manage Plugins”。
- 切换到 “Advanced” 选项卡。
- 在 “Update Site” 部分,点击 “Add”。
- 输入一个名称(比如 “Custom Update Site”)和URL(比如 “https://updates.example.com/update-center.json”)。
- 点击 “Save”。
- 返回到 “Available” 选项卡,你应该能够看到你添加的更新站点。选择它,然后安装插件。
请根据你的情况选择其中一个或多个解决方案尝试解决问题。如果问题仍然存在,请确保证书文件有效并且Jenkins服务器可以访问所需的目标。
正文完