解决Jenkins插件安装过程中的”unable to find valid certification path to requested target”错误

67次阅读
没有评论

问题描述

在设置Jenkins时,尝试安装插件时遇到了以下错误:

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

他们已经尝试将受信任的证书直接导入到JVM中,但仍然出现相同的错误。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1: 更新Jenkins配置

  1. 登录到Jenkins控制台。
  2. 点击左侧菜单中的 “Manage Jenkins”。
  3. 选择 “Manage Plugins”。
  4. 切换到 “Advanced” 选项卡。
  5. 在 “Update Site” 部分,选择 “Hudson” 并点击 “Check Now” 按钮。等待一会儿,直到检查完成。
  6. 如果有更新可用,会显示在 “Available” 列表中。选中需要更新的插件,然后点击 “Download now and install after restart”。
  7. 完成后,重新启动Jenkins以应用更改。

方案2: 导入证书

  1. 确保你有正确的证书文件(如 .crt.pem 格式)。
  2. 登录到Jenkins服务器。
  3. 找到Java的安装路径,通常在 /usr/lib/jvm/usr/local/java
  4. 进入到Java安装路径下的 jre/lib/security 目录。
  5. 备份原始的 cacerts 文件:运行命令 sudo cp cacerts cacerts.backup
  6. 导入证书到 cacerts 文件:运行命令 sudo keytool -import -alias your_alias -keystore cacerts -file path_to_certificate_file,将 your_alias 替换为你想要的别名,path_to_certificate_file 替换为证书文件的完整路径。
  7. 在导入证书后,重启Jenkins服务:运行命令 sudo service jenkins restart

方案3: 设置JVM参数

  1. 编辑 Jenkins 的启动脚本,通常位于 /etc/default/jenkins/etc/sysconfig/jenkins,取决于你的系统。
  2. 在脚本中找到 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 密码。
  3. 保存文件并重启Jenkins服务。

方案4: 使用插件管理器

  1. 进入Jenkins控制台。
  2. 点击左侧菜单中的 “Manage Jenkins”。
  3. 选择 “Manage Plugins”。
  4. 切换到 “Advanced” 选项卡。
  5. 在 “Update Site” 部分,点击 “Add”。
  6. 输入一个名称(比如 “Custom Update Site”)和URL(比如 “https://updates.example.com/update-center.json”)。
  7. 点击 “Save”。
  8. 返回到 “Available” 选项卡,你应该能够看到你添加的更新站点。选择它,然后安装插件。

请根据你的情况选择其中一个或多个解决方案尝试解决问题。如果问题仍然存在,请确保证书文件有效并且Jenkins服务器可以访问所需的目标。

正文完