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

新手上路,请多包涵

我正在尝试使用笔记本电脑上的 Jenkins Git 插件 从 Jenkins 构建 Git 存储库。 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

我了解由于自签名证书而导致出现此错误,但服务器属于我的公司并由授权机构签名。

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

任何帮助将不胜感激

原文由 user2118245 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 815
1 个回答

该错误是 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”或“工件服务器”。

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

您可以使用以下命令将证书导入 JVM cacerts 文件。 – 在你的 Jenkins master 中。获取证书,复制Jenkins的JVM keystore,将证书导入keystore,将可信keystore添加到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

参考帮助:

原文由 Highway of Life 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题