I/O error on POST request for “...“ PKIX path building failed的解决办法

news2024/12/26 10:49:52

异常:
项目中需要用RestTemplate调三方接口,url是https开头加密的。postman可以调通,代码提示没有证书,具体如下:

[ERROR][2023-06-25 10:41:16,574][com.peraglobal.restInterface.controller.PLMController]I/O error on POST request for "...":sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException : PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certificat ion path to requested target

PKIX路径构建失败,无法找到到请求目标的有效证书路径

解决办法:
将访问网址域名的有效证书添加到jdk的信任证书中。

一、获取证书:

  1. 可以在浏览器中输入目标网址域名,点击左侧 证书(正常清空证书应该是有效的,我的客户服务器没有联网所以提示无效证书)
    在这里插入图片描述
    正常是这样的
    在这里插入图片描述
    右键证书,找到详细信息,点击复制到文件
    在这里插入图片描述
    证书导出向导下一步:
    在这里插入图片描述
    选择 Base64编码
    在这里插入图片描述
    输入文件名并选择文件的生成路径
    在这里插入图片描述
  2. 如果跟我一样无效的证书,可以找接口的提供方要一个有效的证书

二、将证书添加到jdk里

管理员权限打开cmd,输入命令:
keytool -importcert -file "C:\Users\sdmadmin\Desktop\UAT.crt" -storepass changeit -keystore "%JAVA_HOME%/jre/lib/security/cacerts"
UAT.crt是刚刚保存的证书路径,-keystore后面是jdk里下的路径
在这里插入图片描述
如果没配置javahome变量可以写cacerts的绝对路径。
在这里插入图片描述
在提示是否信任时输入 是
在这里插入图片描述
如果提示 keytool 错误: java.io.FileNotFoundException: cacerts (拒绝访问。)那么用管理员打开cmd执行一次

三、 重启项目

证书添加完后 重启tomcat,再次调用接口就成功了

关于keytool的命令:

命令说明
-certreq生成证书请求
-changealias更改条目的别名
-delete删除条目
-exportcert导出证书
-genkeypair生成密钥对
-genseckey生成密钥
-gencert根据证书请求生成证书
-importcert导入证书或证书链
-importpass导入口令
-importkeystore从其他密钥库导入一个或所有条目
-keypasswd更改条目的密钥口令
-list列出密钥库中的条目
-printcert打印证书内容
-printcertreq打印证书请求的内容
-printcrl打印 CRL 文件的内容
-storepasswd更改密钥库的存储口令
-help查看全部命令

关于导入证书 keytool -importcert [OPTION]...中的OPTION选项值:

命令说明
-noprompt不提示
-trustcacerts信任来自 cacerts 的证书
-protected通过受保护的机制的口令
-alias 要处理的条目的别名
-file 输入文件名
-keypass 密钥口令
-keystore 密钥库名称
-storepass 密钥库口令
-storetype 密钥库类型
-providername 提供方名称
-providerclass 提供方类名
-providerarg 提供方参数
-providerpath 提供方类路径
-v详细输出

示例

keytool -important -file "C:\Program Files\example.cer" 导入example文件作为证书

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

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

相关文章

MySQL如何在Centos7环境安装:简易指南

目录 前言 一、卸载不要的环境 1.检查本地MySQL是否正在运行 2.停止正在运行的MySQL 二、检查系统安装包 三、卸载这些默认安装包 1.手动一个一个卸载 2.自动卸载全部 四、获取mysql官方yum源 五、安装mysql yum源,对比前后yum源 1.安装前 2.安装中 3.…

MySQL进阶SQL语句之函数运用

目录 1.select(显示表格中一个或数个字段的所有数据记录) 2.distinct(不显示重复的数据记录) 3.where(有条件查询) 4.and 、or(且、或) 5. in(显示已知的值的数据记…

浅谈单线程和多线程的异同

前两天有个面试,面试官问了我一个单线程和多线程的问题,情境如下: 面试官:你对单线程和多线程有什么看法? 我: 面试官: 我: 面试官: 我 现在先让我们来了解一下进程…

WS协议—介绍及原理

举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。 WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。它的最大特点就是&…

ms17_010(永恒之蓝)漏洞复现详细教程

如题,这是个漏洞复现的详细教程,本教程针对的系统是Windows7操作系统,其他系统请自行测试。 备注:教程会很详细,讲解会很明白,一文可以解决你的常见困难。 测试环境 kalilinux 192.168.1.109 (…

Java设计模式之结构型-装饰器模式(UML类图+案例分析)

目录 一、基本概念 二、角色设计 三、代码实现 案例一 案例二 四、总结 一、基本概念 装饰器模式是指不必在改变原有的类和不使用继承的情况下,动态扩展一个对象的功能。 二、角色设计 角色描述抽象构件是一个接口或者抽象类,定义我们最核心的…

科技云报道:边缘计算步入“黄金年代”

科技云报道原创。 当前时点,AI大模型已经站在了从“玩具”向“工具”快速演化的关键迭代期。如何让大模型渗透进入各类垂直场景,如何更低成本的使用大模型,如何让更多场景与用户接触AI,成为了发展的下一个重点。 在AI向实际场景…

大数据应用——总结与反思

1.谈谈你对大数据行业的认识,目前对应的大数据岗位有哪些?每种岗位需要掌握哪些技能水平?目前自己的差距在哪里? (1)概述 对于大数据行业的认识,我的理解是,大数据是指海量数据&…

8种常见的SQL错误用法

前言:MySQL在2016年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况。现将《Apsar…

Dumuz同步微信通讯录及常见问题

在Dumuz工具中,【微信通讯录同步】主要功能是从当前登录的微信上下载通讯录相关成员数据。 第1步: 打开应用【微信-消息批量发送】,在工具栏中点击【微信通讯录】如下图所示: 第2步: 进入【微信通讯录】 对话框&#…

【AUTOSAR】AUTOSAR开发工具链(九)----基于BTC的MIL/SIL测试操作说明(1)

一、BTC使用注意事项 1、安装成功后,在Edit->Preference->General->Compiler可以找到编辑器MSVC140 启动BTC:插入电子狗、选择与电子狗相匹配的License、选择相应的工具包 B2B就是MIL V SIL 适用于MBD开发的测试,单独SIL适用于手写…

【Jmeter教程】__将提取的参数并设置成全局变量(常用于提取token)

目录 一、提取参数 1、使用正则表达式提取器提取token 2、使用json提取器提取token 二、将提取参数设置成全局变量 三、常见问题 一、提取参数 1、使用正则表达式提取器提取token 查看登录响应参数找出token。图中token为 "ticketString": "ccf26b17-a96f…

深入理解MySQL主从配置原理

目录 1. MySQL主从复制原理工作原理 2. 主从配置步骤1: 配置主节点2: 备份主节点数据3: 配置从节点4: 启动主从复制 3.常见问题4. 需要考虑的一些因素 MySQL主从复制是一种数据库复制技术,通过将一个MySQL服务器(主节点)上的数据同步到其他My…

IP地点定位为什么有误差?

随着互联网的不断普及,人们对IP地点定位需求越来越多。然而,即便是在现代技术的支持下IP地点定位仍然存在误差。那么,IP地点定位为什么会出现误差呢? IP(Internet Protocol)地址是指互联网协议(…

SpringCloudSpringcloudAlibaba

SpringCloud 一:微服务架构1.1 ESB1.2 微服务与微服务 二 :编写SpringCloud代码2.1 父模块SpringCloudDemo项目2.2 公共类模块SpringCloud-api项目2.3 消费模块SpringCloud-user-8001项目2.4 RestTemplate 三:注册中心:Eureka3.1 …

机器学习——Kmeans算法

一、实验目的 学习sklearn模块中的KMeans算法 二、实验内容 学习KMeans算法,了解模型创建、使用模型及模型评价等操作 三、实验原理或流程 实验原理: K-means算法是将样本聚类成k个簇(cluster),具体算法描述如下: 1、随机选取k个聚类质…

春招上岸阿里,好多问题当场尬住!

一个粉丝,23年应届毕业生, 双非本科。最近他校招上岸了,拿到了阿里软件测试岗位的Offer。 他总结了一下面试题,感觉很多内容还是有难度的,尤其是对于应届生来说。下面是他整理的面试题,看看这种校招面试难…

sonarqube本地安装使用

sonarqube本地安装使用 sonarqube本地安装使用配置 官网网址:https://www.sonarqube.org/ 注意:sonarqube版本需要与jdk和数据库版本相对应,以及sonarqube对应电脑的位数 本案例中:JDK8、sonarqube7.6版本 在说明文档中可以…

svg图版绘制

推荐工具:Inkscape 绘制带折线的图版,使用左侧工具栏(绘制贝塞尔曲线和直线) 选中顶部(创建一个直线段构成的折线) 直接使用鼠标左键点对点进行绘制,停顿一次为一个坐标,鼠标右击…

软件测试技能,JMeter压力测试教程,setUp线程组实现用户先登录(八)

前言 在接口测试的时候,很多接口都需要用户先登录,才有访问接口的权限。在测试的时候,我们的关注点其实是当前测试的接口,登录只是一个前置操作 像 python 的 unittest 和 pytest 框架都有 setUp 的概念,前置操作用来…