Maven+;Nexus+;Jenkins SSL证书错误

Maven+;Nexus+;Jenkins SSL证书错误,maven,ssl,jenkins,ssl-certificate,nexus,Maven,Ssl,Jenkins,Ssl Certificate,Nexus,我已将证书安装到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

我已将证书安装到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]

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

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

对于那些在这个问题上遇到困难的人(比如我),这里有一些选择

1.在java信任存储中导入CA 第一个选项是使用
keytool
jre
cacert
文件中导入您的证书颁发机构

这个选项虽然看起来是最自然的,但有一个缺点:这意味着对JRE/JDK文件夹具有写访问权限,但情况并非总是如此

2.使用Jenkins将信任存储作为参数传递给Maven中的JVM 这里有一个技巧:
maven
在运行之前将一组参数传递给
jvm
。这些参数被包装在一个名为
MAVEN_OPTS
wihch的变量中,并在
mvn
脚本中初始化

使用Jenkins的方法是在从属设备或作业中创建环境变量,将其称为
MAVEN_OPTS
,并为其提供
JVM
选项:

MAVEN_OPTS
-Djavax.net.ssl.trustStore=your_custom_cert_file

和往常一样,还有很多其他的可能性,但这两种可能性是最干净的。

对于那些偶然发现这个问题的人(比如我),这里有一些选择

1.在java信任存储中导入CA 第一个选项是使用
keytool
jre
cacert
文件中导入您的证书颁发机构

这个选项虽然看起来是最自然的,但有一个缺点:这意味着对JRE/JDK文件夹具有写访问权限,但情况并非总是如此

2.使用Jenkins将信任存储作为参数传递给Maven中的JVM 这里有一个技巧:
maven
在运行之前将一组参数传递给
jvm
。这些参数被包装在一个名为
MAVEN_OPTS
wihch的变量中,并在
mvn
脚本中初始化

使用Jenkins的方法是在从属设备或作业中创建环境变量,将其称为
MAVEN_OPTS
,并为其提供
JVM
选项:

MAVEN_OPTS
-Djavax.net.ssl.trustStore=your_custom_cert_file

和往常一样,还有许多其他的可能性,但这两个是最干净的。

所有这些组件都在代理之后,它是否重要?我发现了这个线索:正确的答案是我需要将证书添加到信任库中,而不是密钥库中。我会尝试一下,并提醒您何时完成所有这些组件都支持代理,这是否重要?我找到了这个线索:正确的答案是我需要将证书添加到信任库中,而不是密钥库中。我会试试这个,提醒你什么时候完成