微信支付PKIX path building failed

异常信息

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification p
ath to requested targetat sun.security.ssl.Alerts.getSSLException(Alerts.java:192)at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1904)at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279)at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:273)at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1446)at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209)at sun.security.ssl.Handshaker.processLoop(Handshaker.java:901)at sun.security.ssl.Handshaker.process_record(Handshaker.java:837)at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023)at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:275)at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:254)at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:123)at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318)at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)at com.gemantic.wealth.admin.util.WxpayUtil.refund(WxpayUtil.java:111)at com.gemantic.wealth.admin.controller.RefundsController.verifyDebt(RefundsController.java:520)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:201)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at com.gemantic.wealth.admin.ArthurFilter.doFilter(ArthurFilter.java:83)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:88)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:745)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)at sun.security.validator.Validator.validate(Validator.java:260)at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1428)... 79 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)... 85 more

异常原因

这是缺少安全证书时出现的异常

分析问题

  • 本地开发并单元测试通过
  • 测试环境API接口测试通过,服务器192.168.1.20
  • 测试环境管理后台的退款操作,调用接口抛出上面的异常,服务器192.168.1.23

20、23的系统、配置、安装的软件等完全一样,出现这种情况的原因感觉很奇怪。唯一的区别就是23服务器上的管理后台与CAS进行了集成

解决方案

  • 第一步想到的是把从微信网站上下载的证书导入到jdk的cacerts

keytool -import -keystore "$JAVA_HOME/jre/lib/security/cacerts" -file /data/admin-web/cer/web/apiclient_cert.p12 -alias staging_wx_web

提示错误:

keytool 错误: java.lang.Exception: 所输入的不是 X.509 证书

  • 第二试着从chrome浏览器中导出证书的cer格式文件,另存为weixin.cer

 

 

  • 将上面导出的证书上传到服务器23的/home/look目录下,然后导入$JAVA_HOME/jre/lib/security/cacerts

keytool -import -keystore "$JAVA_HOME/jre/lib/security/cacerts" -file /home/look/weixin.cer -alias staging_wx

输入密码,按提示输入“是”,完成证书的导入。可以再次查看证书库 keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts,此时已经总数已经多了一个,添加成功

  • 证书配置完成后,重启一下服务。再次测试成功~

 

----------------------遇到点小问题----------------------

输入密钥口令报错

在这里插入图片描述

导入证书到JDK输入密钥库口令这里没有输入生成证书时自己设置的秘钥而是输入changeit
或者直接: 

keytool -import -trustcacerts -alias tomcat -file /opt/mycas/tomcat.cer -keystore "/usr/local/src/java/jdk1.8.0_251/jre/lib/security/cacerts" -storepass changeit

就是命令后面加上密码:-storepass changeit

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

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

相关文章

Nvidia黄仁勋发布了全球最大GPU

来源:凤凰科技花子健摘要:有竞争在,更大的惊喜才有可能会到来。北京时间3月28日凌晨00:00,英伟达GTC 2018(GPU Technology Conference 2018,以下简称GTC)在美国圣何塞举行。英伟达再一次在提升计…

计算机网络(4):网络层

网络层提供的两种服务 虚电路服务(Virtual Circuit Service)和数据报服务(Datagram Service)是在网络层(第三层)提供的两种不同的通信服务。它们主要区别在于建立连接的方式和数据传输的方式。 虚电路服务…

指针数组下标JAVA_C语言中下标与指针的转换以及指向指针的指针的例子

下标到指针之间和转换以下的程序做了什么。#include int main(){int a[3][3] {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}};int i 0;int j 0;for(i 0; i<3; i){for(j0; j<3; j){printf("%d\n", *(*(ai)j));}}}打印了数组中的每个元素&#xff1a;指向指针的指针#inc…

windows 下 Graphviz 安装及入门教程以及 PlantUML

From&#xff1a;http://m.blog.csdn.net/lanchunhui/article/details/49472949 开源工具---使用简单的文字描述画UML图之PlantUML官网&#xff1a;http://plantuml.com PlantUML 支持的工具&#xff1a;http://plantuml.com/running PlantUML语言参考手册中文版.pdf&#xff…

GTC2018八大热点:发布多项黑科技,联合芯片巨头ARM打造AI芯片专用IP

来源&#xff1a;人工智能和大数据丨公众号一年一度的GTC至今已经迎来了第十个年头&#xff0c;虽然它每年或多或少的给网友一些“失望”&#xff0c;但它也终究是代表着GPU行业的高水平技术大会。那么&#xff0c;今年的GTC大会&#xff0c;英伟达又给业界带来了哪些惊喜呢&am…

WPF and Silverlight 学习笔记(十二):WPF Panel内容模型、Decorator内容模型及其他...

由于园子里昨天使用Live Writer上传出现问题&#xff0c;昨天只能使用Web上的文本编辑器上传本文&#xff0c;造成代码、内容等格式的错误&#xff0c;现重发本文。 一、Panel内容模型 Panel内容模型指从System.Windows.Controls.Panel继承的控件&#xff0c;这些控件都是容器&…

Source Insight 教程

From&#xff1a;http://www.cnblogs.com/ningskyer/articles/4038501.html 最经典的Source_Insight完整使用教程&#xff1a;https://wenku.baidu.com/view/6f7dbe87caaedd3382c4d3e4.html Source Insight 使用方法及技巧&#xff1a;https://wenku.baidu.com/view/ddd28da…

GIS最新热点以及未来发展热门

来源&#xff1a;测绘地信、知乎用户测绘小河马GIS是空间技术和信息技术的交叉学科&#xff0c;相关领域的研究热点都有可能成为GIS的发展趋势。GIS的技术环节无外乎数据获取、数据分析、数据呈现三个方面&#xff0c;从近年的发展情况看&#xff0c;GIS可能在这三个方面都有着…

Spring Data JPA 从入门到精通~查询结果的处理

参数选择&#xff08;Sort/Pageable&#xff09;分页和排序 特定类型的参数&#xff0c;Pageable 并动态 Sort 地将分页和排序应用于查询 案例&#xff1a;在查询方法中使用 Pageable、Slice 和 Sort。 Page<User> findByLastname(String lastname, Pageable pageable)…

用C#做短信CMPP2.0/3.0协议 支持扩展号支持物理网卡

此程序为中国移动CMPP协议程序接口&#xff0c;适合在中国移动申请了短信发送端口的公司使用。 短信群发已经成为现在软件系统、网络营销等必不可少的应用工具。可应用在短信验证、信息群发、游戏虚拟商品购买、事件提醒、送祝福等方面。 本程序功能包括&#xff1a; 1、支持Cm…

新算法可模拟人脑整体神经电路

来源&#xff1a;科学网 作者&#xff1a;陈超3月28日&#xff0c;日本理化学研究所日前宣布&#xff0c;他们的一个国际联合研究小组成功开发出模拟人脑整体神经电路的算法&#xff0c;可在下一代超级计算机上应用。新算法不仅节省内存&#xff0c;也能大幅提高现有超级计算机…

Java中的mapreduce没了_MapReduce的过程总结

MapReduce 分为&#xff1a;1) MapTask :1.Read阶段&#xff1a;逻辑切片 128M / Maptask 读数据解析出一个个key/value。2.Map阶段&#xff1a; 把key/value 写入到map中去(处理业务逻辑)3.Collect阶段&#xff1a;将生成的key/value分区(调用Partitioner)排序&#xff0c;并写…

酒桌上的规矩,社会的潜规则

(一)如果自己真不能喝&#xff0c;丫就别开第一口&#xff0c;端着饭碗夹了菜一边吃着去(二)如果确信自己要喝&#xff0c;就别装墨迹&#xff0c;接下来就是规矩了  规矩一&#xff1a;酒桌上虽然“感情深&#xff0c;一口闷&#xff1b;感情浅&#xff0c;舔一舔”但是喝酒…

7个方面读懂6月的5G标准

来源&#xff1a;5G丨公众号作为IMT2020主要的候选技术&#xff0c; 5GNR在3GPP的快马加鞭地统一协调下急速前行&#xff0c;按照计划&#xff0c;今年第一个5G标准会冻结&#xff0c;将为运营商提供一套5G初期部署的可行方案。5GNR 是5G New Radio的简称&#xff0c;是当今通信…

专家谈计算机体系架构研究获“图灵奖”

来源&#xff1a;科学网 作者&#xff1a;王佳雯 韩扬眉近日&#xff0c;有着“计算机界的诺贝尔奖”之称的“图灵奖”揭开面纱。国际计算机协会宣布&#xff0c;美国科学家约翰轩尼诗和大卫帕特森获得2017年度图灵奖&#xff0c;以表彰二人开创了一种系统的、可量化的方法用…

编译和使用APUE的源码

From&#xff1a;http://blog.csdn.net/mitesi/article/details/19015397 APUE说明及源码下载地址 &#xff1a;http://www.apuebook.com/ APUE 电子版 PDF 下载地址&#xff1a;http://download.csdn.net/download/freeking101/10012610 1. 介绍 总结&#xff1a;APUE是一本…

java标签用法详解_介绍一个javaWeb自定义标签的用法详解

这篇文章主要介绍了javaWeb自定义标签用法,结合实例形式分析了javaweb自定义标签的功能、定义方法及执行原理,需要的朋友可以参考下本文实例讲述了javaWeb自定义标签用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;自定义标签创建自定义标签主要用于移除Jsp页面中…

由partition看窗口函数

最近要完成一个项目&#xff0c;有一个查询可难住了笔者&#xff0c;无论是子查询还是分组&#xff0c;都没弄出来&#xff0c;还是基础知识不行啊。不过呢&#xff0c;可以查资料&#xff0c;最后用一个窗口函数解决了问题。由于开始的数据库是Access&#xff0c;后来笔者导成…

AI版「盗梦空间」?谷歌大脑「世界模型」可实现在其梦境中对智能体进行训练

图源&#xff1a;pixabay原文来源&#xff1a;arXiv原文链接&#xff1a;https://arxiv.org/pdf/1803.10122.pdf作者&#xff1a;David Ha、Jurgen Schmidhuber「雷克世界」编译&#xff1a;嗯~是阿童木呀、KABUDA我们探索构建通用强化学习环境中的生成式神经网络模型。我们的世…

Linux文件空洞与稀疏文件

From&#xff1a;http://www.topjishu.com/8277.html From&#xff1a;http://blog.csdn.net/clamercoder/article/details/38361815 Linux_File_Hole_And_Sparse_Files 参考unix环境高级编程第三版 54页和90页&#xff01;&#xff01;&#xff01; ( 文件I/O章节 lseek…