Maven导入依赖时的SSL证书校验问题PKIX path building failed

问题 :

Could not transfer artifact org.apache.axis:axis:pom:1.4 from/to aliyun (http://maven.aliyun.com/nexus/content/groups/public/): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
在这里插入图片描述

解决 : (优先使用方式三)

方式一 : 运行某java工具类生成对应站点的证书,将生成的证书导入到%JAVA_HOME%\lib\security\cacerts目录下;

  1. 用谷歌浏览器访问 https://maven.aliyun.com/nexus/content/groups/public/
  2. 点击链接前面的小锁,然后点击如箭头所指的证书
    在这里插入图片描述
  3. 先点击详细信息,再点击复制到文件
    在这里插入图片描述
  4. 默认,点击下一步
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  5. 把证书添加到 Java 信任证书库
    把刚才下载的 ali.cer 证书放在{java安装根目录}jrelibsecurity目录下
    在这里插入图片描述
    在该目录下打开cmd命令行, 运行命令 : keytool -import -alias cacerts -keystore cacerts -file ali.cer
    在这里插入图片描述
    输入默认密码:changeit,这是 Java 中 cacerts 证书库的默认密码
    在这里插入图片描述
    输入 Y,信任此证书,至此,证书导入完成
    在这里插入图片描述
    若提示 keytool 错误,大可不必操心,只管往下进行即可
  6. 重新导入依赖
    右键项目 → Maven → Reimport

方式二 : 在浏览器中访问https://maven.aliyun.com并导出证书,并将证书导入到%JAVA_HOME%\lib\security\cacerts目录下,并做证书信任。

方式三 : mvn命令执行时忽略证书检查

  1. 在Idea的File -->settings中,设置Maven的importing和Runner参数,忽略证书检查即可。(Eclipse下解决原理类似,设置maven运行时参数即可)
  • 具体参数:

-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

在这里插入图片描述
在这里插入图片描述
2. 删除之前下载失败时的**.lastUpdate**文件
在maven本地库中打开cmd命令行, 输入并执行 : for /r %i in (*.lastUpdated) do del %i
3. 重新导入依赖
右键项目 → Maven → Reimport

————————————————
参考文章:https://blog.csdn.net/qq_22041375/article/details/103491941
     https://my.oschina.net/ghw/blog/3236131

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException是一个Java错误,它表示在建立PKIX路径出现问题,无法找到到所请求目标的有效认证路径。 解决这个问题的常用方法是下载站点证书,并将其导入到Java的信任库中。你可以在IDEA的设置中找到Maven选项,然后在VM Options中添加以下命令:-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true。然后清除IDEA的缓存,重新运行代码。但是这种解决方案只在当前项目中生效,如果想要永久生效,你需要更改IDEA的全局设置。 另外,如果你在使用抓包软件(如proxyman或Charles)出现此错误,解决方法是让Java信任抓包软件颁发的证书。首先,将根证书保存为Base 64编码的证书(.pem)文件,然后使用keytool工具将其导入到Java的根证书信任库中。例如,可以使用以下命令将根证书导入到cacerts文件中: sudo keytool -import -alias proxyman -file $JAVA_HOME/Proxyman.pem -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit 然后输入"yes"确认导入。最后,可以使用以下命令查询导入结果: sudo keytool -list -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit | grep "proxyman" 通过以上方法,你应该可以解决idea PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [gradle-trust-all:一个用于禁用 SSL 证书验证的 gradle 插件](https://download.csdn.net/download/weixin_42120541/19325493)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder](https://blog.csdn.net/weixin_46028606/article/details/130461376)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [(已解决)PKIX path building failed: sun.security.provider.certpath](https://blog.csdn.net/qq_35760825/article/details/128895073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值