1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Jenkins 在Windows下插件无法安装问题解决

Jenkins 在Windows下插件无法安装问题解决

时间:2022-03-07 00:22:11

相关推荐

Jenkins 在Windows下插件无法安装问题解决

本篇是解决Jenkins在某些机器下无法进行在线插件安装的问题。

关于Jenkins在Windows 的安装启动可以参考:

Jenkins 新版本及插件在Windows下的安装

问题

Windows 10 系统下, Jenkins 2.7 之上的版本在线安装插件是失败, 在以下页面中会出现红色的错误标志。

点击具体错误详情, 会出现如下错误信息。

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

.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

此外, 有时候会在插件管理页面出现一段红色的错误提示:

(注: 上图出现错误提示的页面, 非实际错误页面)

发生场景

发生的场景一般是:

老版本的Jenkins一般不会出现, 较新版本会出现个人电脑安装正常,但是在某些单位内网电脑会出现。

原因及解析

从以上错误信息可以看出, 原因基本上是SSH 验证以及证书的原因。Jenkins 已经使用了https 的地址, 在插件管理的 “Advanced ” 标签页中可以看到:

也就是Jenkins插件在线获取的地址是: https://updates.jenkins.io/update-center.json。

Jenkins是使用Java实现的, Java在获取https 的时候会验证证书的有效性, 如果是非法的证书, 则不会下载相关的资源, 也就会报握手以及证书等错误信息。

解决方法

网络上搜素有多种解法, 看上去较多的有:

方法1. 更换https 为 http, 也就是在“Advanced ” 标签页中修改https://updates.jenkins.io/update-center.json 为 http://updates.jenkins.io/update-center.json , 提交之后重启Jenkins。方法2, 切换资源的地址为https://mirrors.tuna./jenkins/updates/update-center.json, 使用清华大学提供的镜像资源地址。

不过, 笔者实验以上两种方法皆无效。 方法1 虽然可以解决 “Check Now”的错误信息, 但是实际下载资源的时候还是使用https, 方法2 更换资源地址, 还是没有解决证书的问题。

终极的解法是在Java添加证书的验证。

如何验证Java访问的站点时安全的

这里有一个Java的类SSLPoke , 使用其可以快速验证使用Java是否可以访问 某个https, 命令如下:

java SSLPoke updates.jenkins.io 443

updates.jenkins.io 是地址443 是https 的默认端口

如果出现如下“Successfully connected”代表成功, 否则会报异常。 否则就有很大可能是需要安装证书。

如何快速安装证书呢?

这里也有一个Java类 InstallCert.java

先编译该类:

javac InstallCert.java

在执行安装证书:

java InstallCert updates.jenkins.io

该命令会在目录产生一个 jssecacerts 的证书文件, 将这个文件复制到jre的目录中, 比如:

C:\Program Files\Java\jre1.8.0_211\lib\security

Jenkins插件下载的重定位

安装完 updates.jenkins.io 的证书之后, 发现下载插件依旧会出错, 查看日志发现如下错误信息:

Caused: java.io.IOException: Failed to download from https://updates.jenkins.io/download/plugins/mailer/1.34/mailer.hpi (redirected to: https://get.jenkins.io/plugins/mailer/1.34/mailer.hpi)

从以上错误信息可以看出, 下载插件时会被重定位到https://get.jenkins.io/plugins, 所以也需要信任这个站点。

终极步骤

综合以上分析, 解决插件在线安装的步骤有:

下载 InstallCert.java 类, 并编译这个类javac InstallCert.java安装 updates.jenkins.io 站点的证书java InstallCert updates.jenkins.io安装 get.jenkins.io 站点的证书java InstallCert get.jenkins.io重启Jenkins

本篇介绍的所有资源及工具的下载地址

/download/oscar999/18855774

问题解决心得

善用日志思考文本的根本原因,找准问题根源, 这个问题完全是Java的https访问的证书验证问题, 如果把焦点一直放在Jenkins本身,则就是缘木求鱼了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。