Maven+Nexus+Jenkins SSL证书错误

jbose2ul  于 2023-08-06  发布在  Maven
关注(0)|答案(3)|浏览(207)

我已经安装了Nexus证书。当我启动Jenkins Builder时,我得到一个错误:

[ERROR] Failed to execute goal on project wf-base: Could not resolve dependencies for project 1.0.0o-SNAPSHOT: Failed to collect dependencies at 1.0.0o-SNAPSHOT: 

Failed to read artifact descriptor for 1.0.0o-SNAPSHOT: Could not transfer artifact 1.0.0o-SNAPSHOT from/to Nexus (https://nexus.repository.link): 

sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]

字符串

bq3bfh9z

bq3bfh9z1#

这里有一些选择,为那些你(像我)谁在这个问题上绊倒。

1.导入java信任存储中的CA

第一个选项是使用keytooljrecacert文件中导入 certificate authority(ies)
这个选项,虽然看起来是最自然的,但有一个缺点:这意味着对JRE / JDK文件夹具有写访问权限,但情况并非总是如此。

2.使用Jenkins将trust store作为参数传递给Maven中的JVM

这里是诀窍:maven在运行之前向jvm传递一组参数。这些参数被 Package 在一个名为MAVEN_OPTS的变量中,该变量在mvn脚本中初始化。
使用Jenkins的方法是在你的slave或job中创建一个环境变量,称之为MAVEN_OPTS,并给予它一个JVM选项:

MAVEN_OPTS
-Djavax.net.ssl.trustStore=your_custom_cert_file

字符串
像往常一样,还有很多其他的可能性,但这两个是最干净的。

qyzbxkaa

qyzbxkaa2#

看起来你在链中缺少一个证书,所以你的证书不受信任,如果它是一个自签名证书,你需要将它添加为根证书。如果证书是由CA颁发的,则需要下载链中缺少的证书并安装它们。

b0zn9rqh

b0zn9rqh3#

我还没有评论权,所以只能回复:
使用avi.elkharrat的答案,一旦您将ca导入到javacacert文件中,您可能还需要重新启动Jenkins以获取新的证书。在我的例子中,如果我以jenkins用户的身份在本地运行maven,我可以成功地从nexus repo中提取,但是如果我从Jenkins运行构建,它仍然不信任Nexus证书。重新启动Jenkins解决了这个问题。

相关问题