【Jenkins问题已解决记录】PKIX 路径构建失败”和“无法找到请求目标的有效证书路径

本文主要介绍了Jenkins在安装及配置过程中遇到的问题,包括证书验证失败、构建命令执行与反馈不符、HTML测试报告样式问题等,并提供了相应的解决方法。通过升级JDK版本、替换证书、配置端口、调整构建步骤及安全选项等措施,有效解决了这些问题,确保了Jenkins的稳定运行。

项目场景:

tomcat安装Jenkins启动,或者Windows直接安装后启动安装插件报错


问题描述

安装插件,或tomcat启动命令界面报错-PKIX 路径构建失败”和“无法找到请求目标的有效证书路径

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Relevant discussions can be found on the Internet at:
    http://www.google.co.jp/search?q=d35baff5 or
    http://www.google.co.jp/search?q=1446302e
TwitterException{exceptionCode=[d35baff5-1446302e 43208640-747fd158 43208640-747fd158 43208640-747fd158], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.5}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:81)
    at twitter4j.TwitterImpl.get(TwitterImpl.java:1929)
    at twitter4j.TwitterImpl.search(TwitterImpl.java:306)
    at jku.cc.servlets.TweetsAnalyzer.main(TweetsAnalyzer.java:38)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
    at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
    at sun.security.ssl.Handshaker.processLoop(Unknown Source)
    at sun.security.ssl.Handshaker.process_record(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
    at twitter4j.internal.http.HttpResponseImpl.<init>(HttpResponseImpl.java:34)
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:141)
    ... 5 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
    at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
    at sun.security.validator.Validator.validate(Unknown Source)
    at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
    ... 20 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
    at java.security.cert.CertPathBuilder.build(Unknown Source)
    ... 26 more
Failed to search tweets: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

原因分析:

经过各种论坛,博客,帖子查看,得出结论。如果安装的是java8一下的,可能是java部分功能不支持Jenkins所需的了。

1.jdk版本过低

2.jdk版本证书不支持


解决方案:

1.升级jdk到11级别上的,这个我直接解决问题了

2.替换低版本jdk的证书,这个网上有很多教程,比较复杂,推荐喜欢动手的优秀人才操作

将所需的证书放在C -> 程序文件 -> java -> jre -> lib -> 安全位置

3.其他待发现中。。。

Jenkins:报错Build step ‘Execute Windows batch command‘ marked build as failure解决办法

问题描述

 构建虽然失败了,但是命令却是执行成功了, 问题就在于:Build step 'Execute Windows batch command' marked build as failure

原因:

jenkins 执行命令,会把命令生成一个批处理文件执行,而 pybot 命令对于批处理来说是外部命令,所以要加 call 表示调用。而 jenkins 执行 windows 命令; 若退出代码不为0 ,则 jenkins 会将构建标记为失败,所以需要加上 exit 0 表示执行完成退出

 构建成功,问题解决!

Jenkins-查看HTML测试报告-样式不显示问题解决

1.在jenkins系统管理中输入以下脚本运行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

1找到系统管理-脚本命令行,如下图

输入 System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "" 并执行,如下图

2.清空本地浏览器缓存;

3.重新登录Jenkins查看即可;

修改端口方式
1、java -jar jenkins.war启动端口

执行命令:“java -jar jenkins.war --ajp13Port=-1 --httpPort=8088”,其中8088就是新的端口号。

2、net start jenkins启动端口

修改jenkins安装目录的jenkins.xml配置文件中的arguments中的启动参数,如下:

忘记密码
如果忘记了密码的情况,这个时候需要重置安全选项。

在提示输入initialAdminPassword的时候,我们已经得到了Jenkins的安装路径:

C:\Users\wjl\AppData\Local\Jenkins.jenkins

用文本编辑器打开config.xml,将这一行:

<useSecurity>true</useSecurity>

改为:

<useSecurity>false</useSecurity>

然后重启Jenkins:在terminal中定位到Jenkins.exe的位置,通常情况下在C盘的Program Files中

cd C:\Program Files\Jenkins
# 关闭Jenkins
.\jenkins.exe stop
# 打开Jenkins
.\jenkins.exe start</pre>



再次进入http://localhost:8080,就可以跳过认证直接进入主页面了。

 开放注册
如果多人使用,需要开放注册,这时我们打开点击Dashboard的Manage Jenkins,然后选择Configure Global Security进入安全设置

 

Jenkins 中执行 Robot Framework 测试文件时,通常需要使用 `robot` 命令,并且确保路径编码问题得到妥善处理。以下是具体的命令编写方式以及解决中文路径乱码问题的方法。 ### 在 Jenkins 中执行 Robot Framework 测试文件的命令 在 Jenkins构建步骤中,可以使用 "Execute Windows batch command"(Windows)或 "Execute shell"(Linux/macOS)来运行 Robot Framework 测试脚本。基本命令如下: ```bash robot --outputdir ./results ./test_suite.robot ``` 其中: - `--outputdir` 指定测试输出结果的目录。 - `./test_suite.robot` 是测试用例文件的路径。 如果测试文件位于子目录中,例如 `tests/login_tests.robot`,则命令为: ```bash robot --outputdir ./results ./tests/login_tests.robot ``` 也可以一次执行多个测试文件或整个目录下的所有 `.robot` 文件: ```bash robot --outputdir ./results ./tests/ ``` ### 解决 Robot 文件路径中出现中文导致的乱码问题路径中包含中文字符时,可能会遇到编码错误,尤其是在某些操作系统或 Jenkins 配置环境下。以下是一些常见的解决方案: 1. **确保 Jenkins 使用 UTF-8 编码** 在 Jenkins 启动时设置默认编码为 UTF-8,可以在 Jenkins 的启动参数中添加以下选项(适用于 Java 环境): ```bash -Dfile.encoding=UTF-8 ``` 如果使用的是 Windows 服务方式运行 Jenkins,可以通过修改服务配置添加该参数;如果是通过命令行启动 Jenkins WAR 包,则可以直接在命令中指定: ```bash java -Dfile.encoding=UTF-8 -jar jenkins.war ``` 2. **避免路径中使用中文字符** 尽量将项目路径、工作空间路径等设置为全英文,以减少因编码不一致导致的问题。虽然这不是根本解决办法,但在团队协作环境中是一种推荐做法。 3. **Robot Framework 支持 Unicode 路径** Robot Framework 本身支持 Unicode 字符,但依赖于 Python 操作系统的支持。确保使用的 Python 版本为 3.x,因为其对 Unicode 的支持更加完善。此外,在 Windows 上建议使用最新版本的 Robot Framework(如 5.x 或更高),以获得更好的兼容性。 4. **Jenkins Pipeline 示例** 如果使用 Jenkins Pipeline 来定义构建流程,可以在 `Jenkinsfile` 中添加如下内容: ```groovy pipeline { agent any stages { stage('Run Robot Tests') { steps { sh 'robot --outputdir ./results ./tests/' } } } } ``` 如果是 Windows 环境,可将 `sh` 替换为 `bat`: ```groovy bat 'robot --outputdir ./results ./tests/' ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值