这个问题的根本原因是你安装JDK时,Java\jar 1.8.0_141\lib\ext\里面缺少了一个安全凭证jssecacerts证书文件,通过运行下面类可以生成证书,将生成的证书放在Java\jar 1.8.0_141\lib\ext\这个目录下,重启编译器就可以解决。

我只能说这个方法应该是解决大部分的问题吧,对于我电脑这种顽强的bug,需要通过两种方法的结合才可以从根本上解决这个问题,废话不多说,看我的解决步骤。

1、先检查你的jdk环境

2、新建一个java类


import java.io.*;
import java.net.URL;import java.security.*;
import java.security.cert.*;import javax.net.ssl.*;public class InstallCert {public static void main(String[] args) throws Exception {String host;int port;char[] passphrase;if ((args.length == 1) || (args.length == 2)) {String[] c = args[0].split(":");host = c[0];port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);String p = (args.length == 1) ? "changeit" : args[1];passphrase = p.toCharArray();} else {System.out.println("Usage: java InstallCert <host>[:port] [passphrase]");return;}File file = new File("jssecacerts");if (file.isFile() == false) {char SEP = File.separatorChar;File dir = new File(System.getProperty("java.home") + SEP+ "lib" + SEP + "security");file = new File(dir, "jssecacerts");if (file.isFile() == false) {file = new File(dir, "cacerts");}}System.out.println("Loading KeyStore " + file + "...");InputStream in = new FileInputStream(file);KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());ks.load(in, passphrase);in.close();SSLContext context = SSLContext.getInstance("TLS");TrustManagerFactory tmf =TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(ks);X509TrustManager defaultTrustManager = (X509TrustManager)tmf.getTrustManagers()[0];SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);context.init(null, new TrustManager[] {tm}, null);SSLSocketFactory factory = context.getSocketFactory();System.out.println("Opening connection to " + host + ":" + port + "...");SSLSocket socket = (SSLSocket)factory.createSocket(host, port);socket.setSoTimeout(10000);try {System.out.println("Starting SSL handshake...");socket.startHandshake();socket.close();System.out.println();System.out.println("No errors, certificate is already trusted");} catch (SSLException e) {System.out.println();e.printStackTrace(System.out);}X509Certificate[] chain = tm.chain;if (chain == null) {System.out.println("Could not obtain server certificate chain");return;}BufferedReader reader =new BufferedReader(new InputStreamReader(System.in));System.out.println();System.out.println("Server sent " + chain.length + " certificate(s):");System.out.println();MessageDigest sha1 = MessageDigest.getInstance("SHA1");MessageDigest md5 = MessageDigest.getInstance("MD5");for (int i = 0; i < chain.length; i++) {X509Certificate cert = chain[i];System.out.println(" " + (i + 1) + " Subject " + cert.getSubjectDN());System.out.println("   Issuer  " + cert.getIssuerDN());sha1.update(cert.getEncoded());System.out.println("   sha1    " + toHexString(sha1.digest()));md5.update(cert.getEncoded());System.out.println("   md5     " + toHexString(md5.digest()));System.out.println();}System.out.println("Enter certificate to add to trusted keystore or 'q' to quit: [1]");String line = reader.readLine().trim();int k;try {k = (line.length() == 0) ? 0 : Integer.parseInt(line) - 1;} catch (NumberFormatException e) {System.out.println("KeyStore not changed");return;}X509Certificate cert = chain[k];String alias = host + "-" + (k + 1);ks.setCertificateEntry(alias, cert);OutputStream out = new FileOutputStream("jssecacerts");ks.store(out, passphrase);out.close();System.out.println();System.out.println(cert);System.out.println();System.out.println("Added certificate to keystore 'jssecacerts' using alias '"+ alias + "'");}private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();private static String toHexString(byte[] bytes) {StringBuilder sb = new StringBuilder(bytes.length * 3);for (int b : bytes) {b &= 0xff;sb.append(HEXDIGITS[b >> 4]);sb.append(HEXDIGITS[b & 15]);sb.append(' ');}return sb.toString();}private static class SavingTrustManager implements X509TrustManager {private final X509TrustManager tm;private X509Certificate[] chain;SavingTrustManager(X509TrustManager tm) {this.tm = tm;}public X509Certificate[] getAcceptedIssuers() {throw new UnsupportedOperationException();}public void checkClientTrusted(X509Certificate[] chain, String authType)throws CertificateException {throw new UnsupportedOperationException();}public void checkServerTrusted(X509Certificate[] chain, String authType)throws CertificateException {this.chain = chain;tm.checkServerTrusted(chain, authType);}}}

3、在命令进行命令编译

跳转到InstallCert .java类所在的盘符,然后运行。

我的第一个错误在这里,大多数人会在该目录下生成一个jssecacerts文件——证书信任凭证。若有生成的,直接将该文件拷贝到Java\jar 1.8.0_141\lib\ext\下,重启编译器,即可。

若和我一样报错的,可以在别人的电脑进行此步操作,然后将生成的安全证书拷贝到Java\jar 1.8.0_141\lib\ext\目录下,效果是一样的,表示本人就是通过这种方法生成的。

一般人,可能拷贝了证书后,重启编译器就生效了,然后我系统的bug又出来了,在这里遇到了第二个bug,进行第四步

4、在idea里面配置两个参数,参数值为下面代码

## 具体参数:
-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

直接在这个参数后面加上面的参数,用空格隔开叭

5、通过上面的步骤,基本就可以了,我的电脑是行的。

附加一个我生成的文件:

jssecacerts-网络安全文档类资源-CSDN下载

直接点击连接,免费下载即可

最全解决 PKIX问题方案:sun.security.validator.ValidatorException: PKIX path building failed:相关推荐

  1. PKIX问题:sun.security.validator.ValidatorException: PKIX path building failed

    对新项目clean install 的时候,报错了,提示没有合法的证书,报错信息如下 [ERROR] Failed to execute goal on project springbootactiv ...

  2. BUG处理:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path buil

    分享目的: 如果别人已经讲述了,这里只会给出相关链接 只补充解决思路. 每个人在寻找解决答案过程中,遇到的痛点难点都是不同的. 这里仅阐述我实际项目遇到问题的解决方案. BUG描述: tomcat配置 ...

  3. 对接服务,对方服务器更新SSL证书,服务https的get和post报错。 sun.security.validator.ValidatorException: PKIX path building

    错误信息 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path build ...

  4. 报错:sun.security.validator.ValidatorException: PKIX path building failed

    背景 本人使用itext导出pdf时,会报这个错误:sun.security.validator.ValidatorException: PKIX path building failed. 报错代码 ...

  5. 解决调用第三方API报sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provid

    1.最近在调用第三方API遇到证书验证问题   postman调用和用RestTemplate分别报错如下: 2.经过查询资料  是https,需要安装证书,但是自定义的证书貌似得不到信任,所以报PK ...

  6. 在linux下tomcat报javax.net.ssl.SSLHandshakeException sun.security.validator.ValidatorException: PKIX

    在本地windows环境Java服务器 访问https服务器没有问题,换到测试环境linux服务器访问时出现上面这个问题, 是证书出问题了,服务器不信任我们自己创建的证书,所以在代码中必须要忽略证书信 ...

  7. Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provid

    1,导出浏览器的证书(以百度为例) 保存在本地,然后上传到服务器 2,查看服务器安装的证书 # 查看服务器安装的证书 keytool -list -keystore /usr/local/jdk1.8 ...

  8. Android studio解决 sun.security.validator.ValidatorException

    使用adroid studio出现错误: Caused by: sun.security.validator.ValidatorException: PKIX path building failed ...

  9. 关于解决驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException:

    首先 如果你是在访问一个网站,可以通过可以通过导入证书的方式解决该问题.或者跳过ssl证书验证.这些操作步骤,其他博主已经写的非常详细了.在这里不做赘述. 如果你只是单纯链接一个本地数据库,却莫名其妙 ...

最新文章

  1. Environ. Microbiol. | 土壤pH和温度调节农业生态系统中丰富和稀有细菌群落的构建过程...
  2. PHP实现归治算法,PHP排序算法系列之归并排序详解
  3. 【20171123】【GITC精华演讲】贝业新兄弟李济宏:如何做到企业信息化建设的加减乘除...
  4. Linux有关Shell中if用法笔记
  5. 错误集合_20220131
  6. 前端代码优化的基本原则
  7. php MySQL使用rand函数随机取记录(转)
  8. 佳能MP145 /140故障代码大全
  9. 代码检查技术Checkstyle与p3c调研
  10. pdf加水印方法,快速给pdf加水印
  11. 宇视警戒球人形检测告警配置
  12. 第三章 概念模型设计(一)
  13. 计算机网络路由器作用是什么,路由器的作用是什么? 猫和路由器的区别分析【图文】...
  14. 美女SEO系列六:什么是友情链接?
  15. 搭建Ubuntu 10.04系统(嵌入式开发)
  16. 计算机改变我们生活英语作文,How did computer change our live?(计算机如何改变我们的生活?初中英语作文)...
  17. Magento支付宝手机网站支付插件V6.0旗舰版发布,支持在微信中使用支付宝支付,订单重新支付功能!...
  18. latex 插图位置跑在文档最后的解决方法
  19. C++利用mongoose搭建web服务器
  20. 基于Skyline的Web程序开发整理(一)

热门文章

  1. 仓库无证如何处罚_无证经营怎么个处罚标准???
  2. 盈亏比例 php,()是指某一行业内企业的固定成本和可变成本之间的比例。A.财务报表结构B.盈亏平衡点...
  3. linux下wps转pdf来实现在线预览
  4. 计算机系统装配与集成
  5. 【观察】操作系统产业峰会2021:立足新起点,迈上新征程
  6. ADI Blackfin DSP处理器-BF533的开发详解41:图像处理专题-LinearTransform图像线性变换处理(含源码)
  7. 未来不带任何东西就能支付 欧洲已采用指纹支付
  8. 关于CloudFront的使用 小结
  9. js中call是什么意思
  10. 【CCNA证书需要什么资格?】