sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification 异常总结

ERROR] Failed to execute goal on project esNewsServer: Could not resolve dependencies for project com.esNewsTest:esNewsServer:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at javax.xml.bind:jaxb-api:jar:2.3.0: Failed to read artifact descriptor for javax.xml.bind:jaxb-api:jar:2.3.0: Could not transfer artifact javax.xml.bind:jaxb-api:pom:2.3.0 from/to alimaven (http://maven.aliyun.com/nexus/content/repositories/central/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]

 

问题背景:我当前的JDK为1.8,因1.8不支持jdbc的链接,所有需要在POM文件中中配置下载依赖jar包,在运行过程中报如上的SunCertPathBuilderException的错误提示,根据本地仓库中所下载JAR包的日志(后缀带lastupdated的文件,可用记事本打开)确定为https证书验证失败导致
  

解决办法如下两种(个人觉得第一种忽略证书的方法就可以解决了):

一、让项目下载依赖JAR包忽略证书的验证,具体操作如下:

  1、运行CMD,通过【cd\】-->【d:】->【CD:项目pom.xml所在的目录】(因我的项目在D盘,可以根据你的项目所在路径而定)

  2、mvn -Dmaven.wagon.http.ssl.insecure=true package   回车,如下图表示成功,然后回到eclipse里UPDATE PROJECT,重新生成,就会成功

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification 异常总结_第1张图片

二、获取证书,添加为受信任的证书:

1、在报错日志中复制链接(http://maven.aliyun.com/nexus/content/repositories/central/);

2、打开谷歌浏览器,粘贴访问。然后如下图点击锁形按钮,点证书;

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification 异常总结_第2张图片

3、如下图操作,根据证书导出向导指引导出证书,记住必须选“DER 编码二进制X.509(.CER)”格式,我是以“nexus.content.repositories.central”命名,导到了C:\Users目录下,好记

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification 异常总结_第3张图片

二、导入证书到JDK

以管理员身份运行CMD,CD到JDK 1.8所在的“JAVA_HOME/jre/lib/securiy”目录。具体操作如下:

1)、CD C:\Program Files\Java\jre1.8.0_231\lib\security   (路径视你的JDK目录为准) 

2)、然后在命令行输入: keytool -keystore cacerts -importcert -alias nexussecureca -file /Users/nexus.content.repositories.central.cer       回车   (记住:务必带上证书的后缀,否则系统会报错)

3)、根据提示输入密钥库口令(java的默认口令是changeit),输前注意大小写,因为在输密码的过程中,界面不会有任何的反应,但是后台会记录密码的

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification 异常总结_第4张图片

4)、系统会询问“是否信任此证书?”,如下图提示输入“y”即可。

5)、eclipse中,运行生成后就不会报上述异常了

 

你可能感兴趣的:(sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification 异常总结)