【问题标题】:Jenkins Git integration - How to disable SSL certificate validationJenkins Git 集成 - 如何禁用 SSL 证书验证
【发布时间】:2017-01-30 07:12:32
【问题描述】:

我在从 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

【问题讨论】:

    标签: git jenkins jenkins-plugins


    【解决方案1】:

    最好的选择是将自签名证书添加到您的证书存储中

    获取服务器证书树这可以使用chrome完成。

    1. 导航到服务器地址。单击挂锁图标并查看证书。将所有证书链导出为 base64 编码文件 (PEM) 格式。

    2. 将证书添加到您的 GIT 信任配置文件的信任链中 在运行作业的机器上的 Git bash 中运行以下命令:

    "git 配置 --list"。

    找到http.sslcainfo 配置,它显示了证书信任文件的位置。 3. 将所有证书复制到信任链文件中,包括"- -BEGIN- -" 和"- -END- -"。确保将 ROOT 证书链添加到证书文件中

    这应该可以解决您使用自签名证书和使用 GIT 的问题。

    不推荐

    另一种方法是远程进入您的从站并运行以下命令:

    git config --global http.sslVerify false

    这将保存到此实例从不进行 SSL 验证的全局配置中,不建议这样做,它应该仅在测试时使用,然后再次禁用。应该如上正确完成。

    【讨论】:

    • 非常感谢。将自签名证书添加到证书存储解决了这个问题。这非常有帮助
    • 最初,http.sslcainfo 指向一个文件夹。我必须更上一层,那里有一个 .pem 证书,并且还要修改这个文件。
    • 当你说 1. 导航到服务器地址。您是指在 Jankins 服务器上的 Gitea 服务器上?
    • @Gspoon 他说的是 git 服务器
    【解决方案2】:

    创建 Freestyle 项目并添加“Windows 批处理命令”并添加

    git config http.sslVerify false 或者 git config --config http.sslVerify false

    完成后,保存并构建作业

    现在您的 jenkin 已配置为不进行 ssl 验证。现在构建成功后,您可以删除批处理命令构建步骤并为您的配置编辑相同的项目。

    【讨论】:

    • 只是在命令行上运行git config --global http.sslVerify false 不起作用,但是这样做了。不过,我必须指定git 的绝对路径;詹金斯似乎没有使用PATH。
    【解决方案3】:

    作为补充,我已经坚持了几个小时,这是我发现的与 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 slave 启动一个 git 操作,它都是一个干净的环境,由 jenkins git 插件处理

    【讨论】:

    • 谢谢,你是救命稻草。
    【解决方案4】:

    你可以使用 JGit 并且可以通过在 JENKINS_HOME 中创建一个 .gitconfig 文件来修复它:

    [http]
    sslVerify = false
    

    【讨论】:

      【解决方案5】:

      登录或切换到jenkins用户;切换在终端上运行这个命令:

      su - jenkins
      

      然后运行

      git config --global http.sslVerify false
      

      【讨论】:

        【解决方案6】:

        我遇到了同样的问题。 首先,我使用了一个在克隆或拉取之前禁用 SSL 验证的 Shell 脚本的 Git。

        后来我改用 JGit,它按预期工作(尽管不建议使用)。 但是,使用 JGit,您不支持某些功能,例如浅克隆。

        我不必安装任何东西来使用 JGit

        【讨论】:

          【解决方案7】:

          在windows中设置环境变量,

          GIT_HOME=path 直到你的 git 安装的 bin 文件夹,然后将其添加到路径变量中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-07-27
            • 2021-12-24
            • 2018-08-07
            • 1970-01-01
            • 2018-11-04
            • 1970-01-01
            • 2019-06-28
            相关资源
            最近更新 更多