一、问题简述
拿到一个从其他地方拷贝而来的springboot项目项目,打算在宿舍电脑上部署。首先需要安装相关依赖。
使用开发工具idea导入项目,右键–》open in terminal,在终端输入mvn install为安装依赖的时候,出现以下报错:
其中,控制台的错误的主要信息:
Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.0.5.RELEASE
from/to nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public): sun.security.validator.ValidatorException
:
PKIX
path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
and ‘parent.relativePath’ points
at no local POM @ line 5, column 10
项目pom.xml文件的报错标红提示:
请注意:本机maven镜像使用的是阿里镜像库,在maven主目录conf/setting.xml是这样子配置(注意协议是http
):
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
在网上找了许久的解决方案,做了尝试。迟迟未能解决问题,捣鼓了好长时间,终于得出了解决方案。
二、解决方案
第一步、修改maven阿里镜像库地址的协议:将http修改为https
。
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
第二步、将阿里镜像库的证书加到信任证书库里面
温馨提示:建议使用Firefox流浪器导出后缀为.crt的证书文件
1、通过chrome浏览器下载证书到本地
(1)在Chrome中打开链接,点击左边“小锁头”图标后出现弹窗,再点击“证书”。
(2)点击“详细信息”tab,点击“复制到文件”,选择本机某个位置,点击“保存”。
此处,我保存在d:\ali_maven.cer
2、通过证书添加到java信任证书库
本机管理员打开cmd,切换到:{java安装根目录}\jre\lib\security
运行如下命令keytool -import -alias cacerts -keystore cacerts -file d:\ali_maven.cer
输入默认密码:changeit
,这是java中cacerts证书库的默认密码。
输入Y,表示信任此证书,至此,阿里镜像证书已成功添加至java信任证书库
三、总结提升
该异常是客户端对服务器的证书认证的时候出错了,解决方案把服务器证书加到信任证书库里面
把该证书导入java中的cacerts证书库里。