因证书问题导致maven相关操作报错的解决

一、问题简述

拿到一个从其他地方拷贝而来的springboot项目项目,打算在宿舍电脑上部署。首先需要安装相关依赖。
使用开发工具idea导入项目,右键–》open in terminal,在终端输入mvn install为安装依赖的时候,出现以下报错:

因证书问题导致maven相关操作报错的解决_第1张图片
其中,控制台的错误的主要信息:

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相关操作报错的解决_第2张图片

请注意:本机maven镜像使用的是阿里镜像库,在maven主目录conf/setting.xml是这样子配置(注意协议是http):

<mirror>
      <id>nexus-aliyunid>
      <mirrorOf>centralmirrorOf>
      <name>Nexus aliyunname>
      <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>

在网上找了许久的解决方案,做了尝试。迟迟未能解决问题,捣鼓了好长时间,终于得出了解决方案。

二、解决方案

第一步、修改maven阿里镜像库地址的协议:将http修改为https
 <mirror>
    <id>nexus-aliyunid>
    <mirrorOf>centralmirrorOf>
    <name>Nexus aliyunname>
    <url>https://maven.aliyun.com/nexus/content/groups/publicurl>
 mirror>
第二步、将阿里镜像库的证书加到信任证书库里面

温馨提示:建议使用Firefox流浪器导出后缀为.crt的证书文件

1、通过chrome浏览器下载证书到本地

(1)在Chrome中打开链接,点击左边“小锁头”图标后出现弹窗,再点击“证书”。
因证书问题导致maven相关操作报错的解决_第3张图片
(2)点击“详细信息”tab,点击“复制到文件”,选择本机某个位置,点击“保存”。
此处,我保存在d:\ali_maven.cer
因证书问题导致maven相关操作报错的解决_第4张图片

2、通过证书添加到java信任证书库

本机管理员打开cmd,切换到:{java安装根目录}\jre\lib\security
运行如下命令keytool -import -alias cacerts -keystore cacerts -file d:\ali_maven.cer
因证书问题导致maven相关操作报错的解决_第5张图片
输入默认密码:changeit,这是java中cacerts证书库的默认密码。
因证书问题导致maven相关操作报错的解决_第6张图片
输入Y,表示信任此证书,至此,阿里镜像证书已成功添加至java信任证书库
因证书问题导致maven相关操作报错的解决_第7张图片

三、总结提升

该异常是客户端对服务器的证书认证的时候出错了,解决方案把服务器证书加到信任证书库里面
把该证书导入java中的cacerts证书库里。

你可能感兴趣的:(Java基础,注意要点)