导入 Git 存储库时,Jenkins“无法找到请求目标的有效认证路径”错误

2024-01-29

我正在尝试建立一个Git repo https://git-scm.com/docs/git-checkout来自詹金斯使用詹金斯 Git 插件 https://wiki.jenkins.io/display/JENKINS/Git+Plugin在我的笔记本电脑上。 Git 存储库驻留在具有自签名证书的公司可信服务器上。在指定 URL 时,我总是收到错误:

Failed to connect to repository : sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target

我了解此错误是由于自签名证书造成的,但服务器属于我的公司并且由权威机构签名。

我还尝试使用自签名从另一台笔记本电脑导入相同的存储库,但不断收到相同的错误。

任何帮助将不胜感激


该错误是 Java 虚拟机报告的常见错误消息。这是因为 Java 环境没有有关 HTTPS 服务器的信息来验证其是否为有效网站。有时,证书由内部根 CA 提供或者是自签名证书。这有时会使 JVM 感到困惑,因为它不是 Java“受信任”列表中可以提供这些证书的人之一。

因为我们知道该证书是“有效的”,所以我们可以将该证书直接导入到 JVM 中。在此过程中,我们告诉 JVM 这是一个“可信”证书并“忽略”它的任何问题。

您需要将证书添加到 Java 证书颁发机构文件中。对于 Debian/Ubuntu Linux 机器,通常位于此处:

$JAVA_HOME/jre/lib/security/cacerts

但是,您不想将其添加到 JRE cacert 密钥库,因为它会被 JRE 覆盖/重写,因此最好为 Jenkins 复制此文件。

  • $JAVA_HOME- 这应该是您当前 java 主目录的位置。如果您只安装了Java运行时环境(JRE),那么您可以替换$JAVA_HOME/jre$JRE_HOME.

  • $ALIAS- 这可以是任何值。它是将此证书与其他证书区分开来的一个值。例如“git-repo”或“artifact server”。

  • $JENKINS_HOME- 这是通往你詹金斯家的路。经常/var/lib/jenkins.

您可以使用以下命令将证书导入到 JVM cacerts 文件中。 ——在你的 Jenkins 大师中。获取证书,复制Jenkins的JVM密钥库,将证书导入密钥库,将可信密钥库添加到Jenkins启动参数中并重新启动Jenkins。

# Import certificate
openssl s_client -showcerts -connect https://your-target-server\
< /dev/null 2> /dev/null | openssl x509 -outform PEM > ~/root_ca.pem

# Duplicate Java Keystore file and move into Jenkins...
mkdir $JENKINS_HOME/keystore/
cp $JAVA_HOME/jre/lib/security/cacerts $JENKINS_HOME/keystore/

# Add Certificate to Keystore
keytool -import -alias $ALIAS -keystore $JENKINS_HOME/keystore/cacerts -file ~/root_ca.pem

# Add -Djavax.net.ssl.trustStore=$JENKINS_HOME/keystore/cacerts to the
# Jenkins startup parameters. For Debian/Ubuntu, this is /etc/default/jenkins
echo 'JAVA_ARGS="$JAVA_ARGS -Djavax.net.ssl.trustStore=$JENKINS_HOME/keystore/cacerts"'\
>> /etc/default/jenkins

sudo service jenkins restart

参考帮助:

  • PKIX 路径构建失败错误消息 https://support.cloudbees.com/hc/en-us/articles/217078498-PKIX-path-building-failed-error-message
  • 如何在 Jenkins 中安装新的 SSL 证书 https://support.cloudbees.com/hc/en-us/articles/203821254-How-to-install-a-new-SSL-certificate-
  • 如何向 Jenkins 添加 Java 参数 https://support.cloudbees.com/hc/en-us/articles/209715698-How-to-add-Java-arguments-to-JenkinsonAndCustomization
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导入 Git 存储库时,Jenkins“无法找到请求目标的有效认证路径”错误 的相关文章

随机推荐