Maven 下载依赖时遇到证书问题

本贴最后更新于 1813 天前,其中的信息可能已经斗转星移

遇到的问题

最近用 IDEA 打开了一个很久之前做的项目,发现需要重新导入 Maven 依赖,在依赖导入的时候报错如下:

could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.0.4.RELEASE from/to nexus-aliyun (https://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 库中没有找到 https://maven.aliyun.com/ 的证书。下面是我的 Maven 使用的阿里云的镜像库。

        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>

解决方案

更换为 https 的阿里云镜像库

        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>

下载安装阿里云的证书

用谷歌浏览器访问 https://maven.aliyun.com/nexus/content/groups/public/
1、点击链接左边的小锁,然后点击证书。

2、点击详细信息,再点击复制证书,之后就连续点击下一步,最后选择自己电脑的一个文件夹存放下载的证书,这里我下载到了 d 盘,文件命名为 ali。

image.png

3、把证书添加到 java 信任证书库

使用管理员权限打开 cmd,切换到:{java安装根目录}\jre\lib\security,把刚才下载的 ali.cer 证书放在 {java安装根目录}\jre\lib\security 目录下。运行命令 keytool -import -alias cacerts -keystore cacerts -file ali.cer

输入默认密码:changeit,这是 java 中 cacerts 证书库的默认密码。

输入 Y,信任此证书,至此,证书导入完成。

4、重新使用 idea 下载 Maven 依赖

点击 package 进行打包,强行下载依赖。

可以看到依赖正在下载,大功告成!

  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 304 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...