我在从 Jenkins 创建作业时收到以下错误。如何在 Jenkins 中禁用证书验证?
从 Git Bash 我可以使用
git config --global http.sslVerify false
命令来禁用它,但不知道如何从 Jenkins 中使用它。
错误:
Failed to connect to repository : Command "C:\Program Files (x86)\Git\cmd\git.exe ls-remote -h url ofmy repository.git HEAD" returned status code 128:
stdout:
stderr: fatal: unable to access 'url of my git/': SSL certificate problem: self signed certificate in certificate chain
最好的选择是将自签名证书添加到您的证书存储中
获取服务器证书树这可以使用chrome来完成。
导航至服务器地址。单击挂锁图标并查看证书。将所有证书链导出为 Base64 编码文件 (PEM) 格式。
将证书添加到 GIT 信任配置文件的信任链中 在运行作业的计算机上的 Git bash 中运行以下命令:
“git config --list”。
找到
http.sslcainfo
配置,该配置显示证书信任文件所在的位置。
"- -BEGIN- -"
和 "- -END- -"
。确保将 ROOT 证书链添加到证书文件中这应该可以解决您的自签名证书和使用 GIT 的问题。
不推荐
另一种方法是远程连接到您的从站并运行以下命令:
git config --global http.sslVerify false
这将保存到全局配置中,该实例从不进行 SSL 验证,不推荐这样做,应该仅在测试时使用,然后再次禁用。应该按照上面的方法正确完成。
补充一下,我已经坚持了几个小时,这是我发现的与 SSL 相关的内容
添加
-Dorg.jenkinsci.plugins.getclient.GitClient.untrustedSSL=true
作为 java jnlp 命令的参数,
并将 GIT_SSL_NO_VERIFY=true 设置为环境变量,因此从属端的启动从属命令现在看起来像(不确定某些参数是否重复)
export GIT_SSL_NO_VERIFY=true
java -Dorg.jenkinsci.plugins.getclient.GitClient.untrustedSSL=true -jar slave.jar -jnlpUrl ${jenkins_url}/computer/${slave_name}/slave-agent.jnlp -secret ${secret} -noCertificateCheck
您可能也需要同样的
-noCertificateCheck
尝试调用 jenkins-cli.jar 时
(至https://blog.csdn.net/froghui/article/details/39641221)
因为每次 jenkins 从站启动 git 操作时,它都是一个干净的环境,由 jenkins git 插件处理
创建 Freestyle 项目并添加“Windows Batch Command”并添加
git config http.sslVerify false
或
git config --config http.sslVerify false
完成后,保存并构建作业。
现在你的 jenkin 配置为不进行 ssl 验证。成功构建后,您现在可以删除批处理命令构建步骤并为您的配置编辑相同的项目。
您可以使用 JGit,并可以通过在 JENKINS_HOME 中创建一个 .gitconfig 文件来修复它,并使用以下几行:
[http]
sslVerify = false
需要重启服务。
登录或切换到jenkins用户;要进行切换,请在终端上运行此命令:
su - jenkins
然后运行
git config --global http.sslVerify false
我也有同样的问题。 首先,我使用 Git 使用 Shell 脚本,该脚本在克隆或拉取之前禁用了 SSL 验证。
后来我转而使用 JGit,它按预期工作(尽管不建议使用)。 然而,JGit 不支持某些功能,例如浅克隆。
事实上我不需要安装任何东西来使用 JGit
在windows中设置环境变量,
GIT_HOME=path
直到你的git安装的bin文件夹,然后将其添加到路径变量中。