从 Jenkins 上的 GitHub 克隆:无法加载 PEM 客户端证书

Posted

技术标签:

【中文标题】从 Jenkins 上的 GitHub 克隆:无法加载 PEM 客户端证书【英文标题】:Cloning from GitHub on Jenkins: could not load PEM client certificate 【发布时间】:2019-05-19 06:38:18 【问题描述】:

我设置了一个构建服务器并想在 Jenkins 中克隆一个项目。

我收到以下错误:

致命:无法访问“https://github.com/habitat-sh/sample-node-app/”:无法加载 PEM 客户端证书,LibreSSL 错误错误:02FFF00D:系统库:func(4095):权限被拒绝,(未找到密钥,密码错误或文件错误格式?)

它在公共 GitHub 上,不需要证书,当我在终端上克隆时一切正常。此外,curl 可以正常工作。

您对导致问题的原因有任何想法吗?尝试了很多堆栈溢出解决方案,例如将git config --global http.sslVerify 设置为false,但它们都不起作用

(操作系统为 macOS)

【问题讨论】:

【参考方案1】:

我能够自己解决问题。问题是,Jenkins 用户无法访问我在 GitConfig 中设置的 ssl 证书

git config --global http.sslCert "~/Documents/certificates/cert.crt"
git config --global http.sslKey "~/Documents/certificates/cert.key"
git config --global http.sslCaInfo "~/Documents/certificates/cert-ca.crt"

令人惊讶的是,没有显示权限错误,这使得该问题难以调试。

帮助移动 Jenkins 用户目录中的证书。

【讨论】:

【参考方案2】:

我有同样的问题,但我在执行以下操作后才修复:

brew 卸载 git

接下来,我回到 repo 目录并在终端中执行了git fetch,钥匙串访问打开了弹出窗口,要求在凭据标题中输入我的密码。我输入密码并单击“始终允许”按钮。之后,所有分叉或克隆的存储库都已成功更新为git pull

我希望这对其他人有所帮助。

我的配置:

big Sur 11.4 版 git 版本 2.30.1 (Apple Git-130)

注意事项: 几个月前我在我的钥匙串系统中添加了 GitLab 自签名有效证书

【讨论】:

以上是关于从 Jenkins 上的 GitHub 克隆:无法加载 PEM 客户端证书的主要内容,如果未能解决你的问题,请参考以下文章

为 Github 私有存储库验证 Jenkins CI

从 AWS EC2 实例上的 github 企业克隆时出现 SSL 错误

让Jenkins执行GitHub上的pipeline脚本

从 GitHub 克隆后无法运行 Flutter 项目

适用于 Windows 7 的 Git 无法从 github 克隆存储库

django.db.utils.ProgrammingError尝试从github克隆的app上的manage.py makemigrations