【问题标题】:Maven+Nexus+Jenkins SSL certificate errorMaven+Nexus+Jenkins SSL 证书错误
【发布时间】:2017-05-23 17:53:11
【问题描述】:

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

【问题讨论】:

    标签: maven ssl jenkins ssl-certificate nexus


    【解决方案1】:

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

    【讨论】:

    • 所有这些组件都在代理后面,重要不重要?
    • 我找到了这个帖子:stackoverflow.com/questions/7851153/… 正确答案说我需要将我的证书添加到信任库中,而不是在密钥库中。我会试试这个并提醒你什么时候完成
    【解决方案2】:

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

    1。在 java 信任库中导入 CA

    第一个选项是使用keytooljre cacert 文件中导入您的证书颁发机构

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

    2。使用 Jenkins 将信任库作为参数传递给 Maven 中的 JVM

    诀窍是:maven 在运行之前将一组参数传递给jvm。这些参数封装在一个名为 MAVEN_OPTS 的变量中,并在 mvn 脚​​本中初始化。

    使用 Jenkins 时要走的路是在你的奴隶或你的工作中创建一个环境变量,称之为 MAVEN_OPTS 并给它JVM 选项:

    MAVEN_OPTS
    -Djavax.net.ssl.trustStore=your_custom_cert_file
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-21
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      相关资源
      最近更新 更多