致命:无法访问"https://gitlab-ci-token:[MASKED]@gitlab.mydomain.com/xxx.git/":SSL 证书问题:无法获取颁发者证书



我无法成功运行 autodevops 管道。我已经经历了多个教程,指南,问题,修复,解决方法,但现在我需要您的支持。

我有一个家庭 kubernetes 集群(两个 VM)和一个使用 HTTPS 的 GitLab 服务器。我已经设置了集群并在 GitLab 组级别(头盔、入口、运行器已安装)中定义了它。我必须做一些调整才能使运行器在 gitlab 中注册(它最初不接受证书)。

现在,当我运行 autodevops 管道时,我在日志中收到错误,如下所示:

Running with gitlab-runner 11.9.0 (692ae235)
on runner-gitlab-runner-5976795575-8495m cwr6YWh8
Using Kubernetes namespace: gitlab-managed-apps
Using Kubernetes executor with image registry.gitlab.com/gitlab-org/cluster-integration/auto-build-image/master:stable ...
Waiting for pod gitlab-managed-apps/runner-cwr6ywh8-project-33-concurrent-0q7bdk to be running, status is Pending
Running on runner-cwr6ywh8-project-33-concurrent-0q7bdk via runner-gitlab-runner-5976795575-8495m...
Initialized empty Git repository in /testing/helloworld/.git/
Fetching changes...
Created fresh repository.
fatal: unable to access 'https://gitlab-ci-token:[MASKED]@gitlab.mydomain.com/testing/helloworld.git/': SSL certificate problem: unable to get issuer certificate

我已经尝试了许多解决方法,例如在/home/gitlab-runner/.gitlab-runner/certs/gitlab.mydomain.com.crt下添加我的域的 CA 证书,但仍然没有结果。

无法验证自签名证书时,会发生错误。

添加 CA 证书的另一种解决方法是强制 git 不使用全局选项执行证书验证:

$ git config --global http.sslVerify false

此处提供了此问题的解决方案列表: https://gitlab.com/gitlab-org/gitlab-runner/issues/2659

最可能但最粗略的解决方案是:打开/etc/gitlab-runner/config.toml 并修改如下:

[[跑步者]]

环境 = ["GIT_SSL_NO_VERIFY=真"]

然后重新启动 gitlab 运行程序。

gitlab 运行器不使用安装 gitlab 运行程序的主机操作系统的信任库。您收到的错误是因为 GitLab 运行程序无法验证您的 GitLab 服务器提供的证书。这可能是由以下两种原因之一引起的。 1) 您的 GitLab 服务器提供自签名证书。 2) 如果您没有使用自签名证书,GitLab 运行器将无法验证证书,因为证书链中的一个证书丢失(根 CA 证书或中间 CA 证书)。

溶液: 您需要向 GitLab 运行器提供您希望它信任的证书。您的自签名 CA 证书和自签名证书(适用于方案 1),或者完整的证书链:GitLab 服务器证书>中间 CA 证书>根 CA 证书。

如何执行此操作:

1) 创建一个完整的 CertChain.crt 文件,并将完整的证书链粘贴到该文件中。

2)将fullCertChain.crt复制到gitlab-runner服务器上,例如/etc/gitlab-runner/ca-certs

3) 在 gitlab-runner 服务器上修改/etc/gitlab-runner/config.toml。 在 [[runners]] 部分中,添加以下行:

[[runners]]
tls-ca-file = "/etc/gitlab-runner/ca-certs/fullCertChain.crt"

4)重新启动gitlab-runner以进行更改(我认为实际上不需要此步骤,但我这样做是为了以防万一)

sudo gitlab-runner start

5) 验证运行器是否正确启动备份:

sudo gitlab-runner list

您的 GitLab 运行器现在应该能够连接回您的 https://gitlabHost

相关内容

  • 没有找到相关文章

最新更新