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,重新生成,就会成功

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

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

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

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

二、导入证书到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),输前注意大小写,因为在输密码的过程中,界面不会有任何的反应,但是后台会记录密码的

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

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

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于解决 "Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target" 错误,通常是由于缺乏信任证书引起的。 要解决此问题,可以采取以下步骤: 1. 确保目标服务器的 SSL 证书是有效且由受信任的证书颁发机构(CA)签名的。 2. 通过以下方式之一,将目标服务器的 SSL 证书添加到 NiFi 的信任存储中: a. 将目标服务器的 SSL 证书手动导入 NiFi 的 Java 密钥库(Java KeyStore)中。可以使用 keytool 工具来完成此操作。例如,使用以下命令将证书导入到 NiFi 的密钥库中: ``` keytool -import -alias <alias> -keystore <path_to_keystore> -file <path_to_certificate> ``` b. 将目标服务器的 SSL 证书添加到 NiFi 的 `nifi.properties` 配置文件中。在该文件中,找到 `nifi.security.truststore` 和 `nifi.security.truststoreType` 配置项,并分别设置为信任存储文件的路径和类型。然后,重启 NiFi 以使更改生效。 3. 如果目标服务器的 SSL 证书是自签名的或使用内部证书颁发机构签名的,则可以创建自定义信任存储(Trust Store),其中包含目标服务器的证书。 a. 创建一个包含目标服务器证书的文件(例如 `custom-truststore.jks`)。 b. 在 `nifi.properties` 配置文件中,设置以下配置项: ``` nifi.security.truststore=/path/to/custom-truststore.jks nifi.security.truststoreType=jks ``` c. 重启 NiFi 以使更改生效。 请注意,应谨慎使用自签名证书和信任存储,确保只信任受信任的证书。 这些步骤应该能够解决 "Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target" 错误。如果问题仍然存在,请检查证书和配置是否正确,并确保网络连接正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值