Windows 10 + Jenkins 2.4 安装插件时https 的证书问题及解决

news2024/11/25 0:28:17

本篇面临与解决的问题

本篇是在 Windows 10中安装Jenkins 2.414.1 , 在安装完成之后安装一些需要的插件, 可以在浏览器端安装插件的时候, 总是不成功, 控制台报以下错误:

 SEVERE  h.model.UpdateCenter$DownloadJob#run: Failed to install antisamy-markup-formatter
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:146)
        at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:127)
        at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)
        at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)
Caused: sun.security.validator.ValidatorException: PKIX path building failed
        at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)
        at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)
        at java.base/sun.security.validator.Validator.validate(Validator.java:264)
        at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
        at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
        at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638)
Caused: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

一句话, 还是 https 证书的问题。

之前有总结一篇如何解决这个问题, 参考:
Jenkins 在Windows下插件无法安装问题解决

但是,按照这个方式处理之后,问题还是依旧。

难道是证书导入的不对吗?
使用SSLPoke 查看Java是否能访问插件的 https, 发现都是正常的, 命令如下:

java SSLPoke updates.jenkins.io 443
java SSLPoke get.jenkins.io 443

返回都是:

Successfully connected

也就是说, 证书导入之后, Java访问是正常的, 但是Jenkins 却无法下载插件。

是因为Jenkins无法找到证书库吗, 于是在启动的时候使用 javax.net.ssl.keyStore 指定证书库文件, 命令如下:

java -Djavax.net.ssl.keyStore="C:\Program Files\Java\xx\lib\security\cacerts" -storepass changeit  -jar jenkins.war

问题还是依旧,于是想着:
是否可以让Jenkins 忽略证书访问呢? 使用 hudson.model.DownloadService.noSignatureCheck 参数设置下载的时候忽略证书:如下:

java -Dhudson.model.DownloadService.noSignatureCheck=true -jar jenkins.war

实验结果: 失败。

解决方案

在启动的后台终端看到如下一条提示:

Caused: java.io.IOException: Failed to download from https://updates.jenkins.io/download/plugins/cloudbees-folder/6.848.ve3b_fd7839a_81/cloudbees-folder.hpi (redirected to: https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/cloudbees-folder/6.848.ve3b_fd7839a_81/cloudbees-folder.hpi)

看这条的意思是: 从官方下载失败了, 重定向到清华大学的镜像。这时脑海闪过一个死马当成活马医的想法, 导入 清华大学的镜像的证书试试:

  1. 在浏览器打开 https://mirrors.tuna.tsinghua.edu.cn/
  2. 下载证书
  3. 导入证书
  4. 到Jenkins中安装插件

惊喜出现了, 竟然可以了。 下载的插件文件位于:C:\Users\xxx.jenkins\plugins。安装完成就可以使用, 不需要重启。

本篇相关的环境搭建

  • JDK 17 ,OpenJDK,下载地址: https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_windows-x64_bin.zip
  • Jenkins 2.414.1,长期支持版本。

Jennkins从 Jenkins 2.357 和 LTS 2.361.1版本之后需要JDK 11 或者JDK 17之上的版本。
这里的JDK是解压版,不需要安装, 解压后将目录jdk-17.0.2 复制到C:\Program Files\Java 下,如果机器有其他版本的Java, 复制后的目录结构如下:
在这里插入图片描述

修改JAVA_HOME 以及Path 环境变量, 使机器使用 JDK 17, 也可以临时设置,需要注意的是Path默认会有一个值 C:\Program Files (x86)\Common Files\Oracle\Java\javapath, 修改Java版本的时候要注意这个。

本篇相关的JDK, Jenkins 以及常用插件可以通过以下地址一键下载:

https://download.csdn.net/download/oscar999/88354562

Jenkins 安装成功后的页面如下:

在这里插入图片描述

关于内部根证书

在企业环境中,经常需要使用根证书对外部证书进行包装和签名,来创建所谓的“代理证书”或“包装证书”。这些证书提供了额外的验证和安全性,可以增加一层来自企业内部的信任。

在这种设置中,一般情况的流程如下:

  1. 创建或引入企业根证书:企业首先需要有一个被内部服务器、设备和用户所信任的根证书。这可以是自签名的,也可以是从商业或公开的认证颁发机构购买的。

  2. 创建证书签名请求(CSR):对于需要签名的外部证书,您需要先创建一个与该证书相关联的 CSR。这通常涉及到输入一些相关信息,例如您的组织和服务器的名称、位置等。

  3. 使用根证书签名 CSR:然后,您可以使用您的企业根证书签名 CSR,创建一个新的服务器证书。这个新的证书是原来的外部证书的“包装版”,它现在包含了来自您的企业的签名。

  4. 在服务器上使用新的证书:最后,您可以在您的服务器上使用这个新的被签名的证书,代替原先的外部证书。

证书的验证

内部根证书所签发的其他证书需要进行以下步骤:

  1. 检查证书链: 首先检查证书的签名链是否完整。一个证书应该能够在证书链中向上追溯到其签发的根证书。在一个浏览器环境中,它会自动执行这个过程。

  2. 验证根证书: 根证书需要被特定应用或操作系统信任。如果根证书是内部私有证书,那么它同样需要被手动安装在受信任的根证书存储中。

  3. 检查证书的有效期: 检查证书是否在有效期内。证书都有一个开始日期和一个到期日期,并且仅在这段时间内有效。

  4. 查找证书撤销列表(CRL)或者在线证书状态协议(OCSP): 证书可能在它的有效期内被撤销。验证过程需要检查证书是否已被撤销。

  5. 验证证书的使用目的: 验证证书是否被用于它被设计的用途。例如,服务器证书必须用于 SSL/TLS 通信。

具体的验证步骤可能因环境和具体的需求来变化。在编程环境中,这些验证步骤可能需要自己去实现,或者是使用第三方库来完成。在浏览器和操作系统环境中,这些步骤通常是自动进行的。

自有根证书可能的问题

使用自有的根证书,并发现无法正常访问外部站点,这可能由多个原因导致:

代理或防火墙设置: 你的网络可能有一个代理服务器或防火墙,这些可能需要特殊证书来建立安全连接。如果你的设备没有安装正确的证书,可能不能访问外部网站。你可能需要联系你的IT部门来获取并安装正确的证书。

证书权限: 有可能你的根证书或者中间证书并不允许你的设备访问外部资源。你可能需要检查你的根证书的权限设置,或者联系你的IT部门寻求解决办法。

证书链问题: 如果你的证书链有问题,可能会阻止你的设备成功的对外部网站进行TLS握手。这可能是因为证书链缺失,或者你的企业的根证书没有正确的签名外部资源的证书。

这里可能的问题就是本篇开篇遇到的问题了。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1021632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工作中怎么去进行测试用例的编写

作为一个测试人员,无论是测试资深大佬还是刚入门的测试小白应该都知道,编写测试用例是我们测试的核心工作之一,往往测试用例写的标准与否,最能体现我们测试人员的差距,那么如何编写一篇优秀高质量的测试用例呢&#xf…

Postman应用——测试脚本Test Script

文章目录 Test Script脚本CollectionFolderRequest 解析响应体断言测试 测试脚本可以在Collection、Folder和Request的Pre-request script 和 Test script中编写,测试脚本可以检测请求响应的各个方面,包括正文、状态代码、头、cookie、响应时间等&#x…

Doris 2.0.1 Dockerfile制作

镜像编译 准备工作 1、创建目录 └── docker-build // 构建根目录 └── fe // FE 构建目录 ├── dockerfile …

JVM的内存分配及垃圾回收

内存分配 在了解Java的内存管理前,需要知道JVM中的内存分配。 栈 存储局部变量。在方法的定义中或在方法中声明的变量为局部变量;栈内存中的数据在该方法结束(返回或抛出异常或方法体运行到最后)时自动释放栈中存放的数据结构为…

Linux:haproxy部署--搭建nginx集群

Haproxy介绍 Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能。 其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查)&am…

区块链安全,哈希函数暴露的攻击向量与对策

区块链安全,哈希函数暴露的攻击向量与对策 简介 Length Extension Attack 是一种与某些特定类型的哈希函数(如 MD5,SHA-1 和 SHA-2)的特性有关的攻击。简单来说,这种攻击利用了一个事实,即知道 H(message)…

Spring Boot 各版本的支持时间

1. Spring Boot 各版本的支持时间 Spring Boot 2.7 的版本,支持到2023-11-18,之后就要停止支持了。 按照官网的数据,3.0 的版本也是到2023年11月就停止支持了。如果要转到SpringBoot3,直接从3.1开始吧。到写这篇文章时&#xff…

如何在电脑和手机之间无线传输大文件?不限文件格式、不压缩画质

AirDroid个人版支持在 Windows、Mac、Linux、安卓、iOS 之间跨平台互传文件,无需数据线,没有文件类型的限制,更不用担心图片或视频的画质被压缩——无损传输,轻松高效。 如果设备连接的是同一网络(局域网内&#xff09…

【最优化】—— 最优化简介(一)

文章目录 前言最优化问题概括最优化问题的一般形式最优化问题的类型例子:稀疏优化 最优化的基本概念全局和局部最优解优化算法收敛性算法的渐进收敛速度算法的复杂度 前言 本系列文章作为最优化学习的相关笔记。参考书目:文再文老师的《最优化&#xff…

stm32f103步进电机S曲线加减速计算

S曲线主要实现低速扭力大,更快更稳 https://zhuanlan.zhihu.com/p/396648926?utm_campaign&utm_mediumsocial&utm_oi1361101006265331712&utm_psn1686906450235133952&utm_sourcezhihu 可点击上面链接查看啤酒杯的运动动画 摘自一段知乎上一段关于…

C#,数值计算——Logisticdev的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Structure for logistic deviates. /// </summary> public class Logisticdev : Ran { private double mu { get; set; } private double sig {…

PaddlePaddle Hackathon 飞桨黑客马拉松热身赛上线!

挑战自我 拓展技能 激发创新 挑战极限 再次相遇黑客松 我们期待你的加入&#xff01; 第五期 PaddlePaddle Hackathon 飞桨黑客马拉松热身赛上线&#xff0c;本次活动是面向全球开发者的深度学习领域编程活动&#xff0c;鼓励开发者了解和参与飞桨深度学习开源项目与文心大…

基于海康Ehome/ISUP接入到LiveNVR实现海康摄像头、录像机视频统一汇聚,做到物联网无插件直播回放和控制

LiveNVR支持海康NVR摄像头通EHOME接入ISUP接入LiveNVR分发视频流或是转GB28181 1、海康 ISUP 接入配置2、海康设备接入2.1、海康EHOME接入配置示例2.2、海康ISUP接入配置示例 3、通道配置3.1、直播流接入类型 海康ISUP3.2、海康 ISUP 设备ID3.3、启用保存3.4、接入成功 4、相关…

TC397 IfxAsclin串口收发分析

TC397 IfxAsclin串口收发分析 硬件FIFO 16 bytes TxFIFO 16 bytes RxFIFO 软件操作: 通过以上函数调用分析,可知: 1:初始化串口时,指定的FIFO为S/W 缓冲FIFO 2:ILLD提供的ISR操作函数: IfxAsclin_Asc_isrTransmit(&gstAsc2); IfxAsclin_Asc_isrReceive(&gs…

VMware虚拟机如何设置网络

一直没弄明白怎么能让虚拟机正常上网和访问&#xff0c;最近总结一个小经验 要在宿主机访问虚拟机电脑服务器&#xff0c;要设置成nat格式&#xff0c;虚拟机可以上网&#xff0c;宿主机访问虚拟机上的ip即可访问虚拟机里的服务器&#xff0c;也就是这样设置就行。 这时候ip不…

计算机网络层(2)

1.动态路由协议&#xff1a; 内部网关协议&#xff1a;用于一个自治系统的内部 外部网关协议&#xff1a;用于不同自治系统 RIP协议&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;&#xff1a;路由信息协议是一种内部网关协议&#xff0c;是一…

【洛谷算法题】P5706-再分肥宅水【入门1顺序结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5706-再分肥宅水【入门1顺序结构】&#x1f30f;题目描述&#x1f30f;输入格式…

Python爬虫基础(五):使用scrapy框架

文章目录 系列文章索引一、scrapy简介1、什么是scrapy2、scrapy安装3、scrapy架构组成4、scrapy工作原理 二、scrapy基本使用1、创建项目2、创建爬虫文件3、&#xff08;附&#xff09;项目组成4、运行爬虫代码&#xff08;1&#xff09;修改baidu.py&#xff08;2&#xff09;…

css自学框架之平滑滚动

今天添加的功能是平滑滚动到指定位置&#xff0c;就是单击页面的按钮&#xff0c;平滑滚动页面到对应的元素&#xff0c;可添加偏移值。 示例&#xff1a;单击ID为gundongBTN 元素&#xff0c;页面平滑滚动到其指定的ID为#topdiv对应内容&#xff0c;同时保留 5px 的偏移间距。…

Java计算机毕业设计 基于SSM+Vue医药进出口交易系统的设计与实现 Java课程设计 实战项目

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…