Maven部署到nexus证书问题

时间:2014-08-04 17:05:10

标签: java maven jenkins certificate nexus

将我的nexus服务器从家庭服务器移动到根服务器后,如果我在jenkins slave上启动任何构建作业,则会出现以下错误:

传输文件时出错:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径

我家里没有证书,现在我使用的是由startssl签名而不是自签名的证书。

在谷歌上阅读后,我发现maven 3.0.5更新存在一些问题,您需要将证书导入到java证书文件中。我还读到,只有在使用自签名证书时这才是必要的,但我仍然尝试过这个解决方案而且没有用。我这样做是通过直接导入我的证书并使用此链接中的类,然后复制创建的文件:

https://www.liferay.com/de/web/neil.griffin/blog/-/blogs/fixing-suncertpathbuilderexception-caused-by-maven-downloading-from-self-signed-repository

我接下来尝试的是从Windows机器上复制证书文件,据报道在某些情况下有帮助,但没有。

然后我开始使用不同的maven版本3.0.1,3.0.4,3.0.5,3.2.1进行构建,这没关系。它总是一样的。

作为最后一步,我将我的java从openjdk 7升级到了oracle java 7和8,这也是一个死胡同。

有没有人在这里缺少关键信息?我不想添加属性来忽略任何证书检查。这必须以安全可靠的方式工作。

编辑:通过控制台手动执行发布工作正常。 tomcat / jenkins似乎在证书解析方面遇到了一些麻烦。我也试过这个:

https://gist.github.com/4ndrej/4547029

完全没有问题。

1 个答案:

答案 0 :(得分:0)

我刚刚发现为什么它不起作用。我将jenkins配置为使用自动安装的JDK进行构建作业。问题是,这个安装没有获得我为实际运行tomcat / jenkins服务器的VM设置的任何环境变量,这在第二个想法上是合理的,但几乎不透明。我无法找到为VM设置任何环境变量的方法,因此这不是解决方案。

我所做的解决方法非常简单,使用实际启动tomcat / jenkins服务器并配置了我的证书的VM。