首页 > 后端开发 > Golang > 如何解决 GitLab-CI Runner 自签名证书验证错误?

如何解决 GitLab-CI Runner 自签名证书验证错误?

Patricia Arquette
发布: 2024-12-02 19:25:13
原创
570 人浏览过

How to Resolve GitLab-CI Runner Self-Signed Certificate Validation Errors?

Gitlab-CI Runner:绕过自签名证书验证

注册 Gitlab-CI 多运行器时,您可能会遇到相关错误进行证书验证,如:

couldn't execute POST against https://xxxx/ci/api/v1/runners/register.json:
Post https://xxxx/ci/api/v1/runners/register.json:
x509: cannot validate certificate for xxxx because it doesn't contain any IP SANs
登录后复制

Gitlab 时会出现此问题服务器提供缺少 IP 使用者备用名称 (SAN) 的自签名证书。要绕过证书验证,您可以在注册运行器时使用 --tls-ca-file 选项。

gitlab-runner register --tls-ca-file=/path/to/certificate.crt [other options]
登录后复制

其中 /path/to/certificate.crt 是自签名证书的绝对路径文件。或者,您可以通过将 --tls-disable-verify 设置为 true 来完全禁用证书验证,但不建议这样做,因为它可能会损害运行器的安全性。

gitlab-runner register --tls-disable-verify=true [other options]
登录后复制

如果您不是管理员Gitlab 服务器的权限,但负责管理运行器服务器,您可以使用以下命令从 Gitlab 服务器获取证书:

SERVER=gitlab.example.com
PORT=443
CERTIFICATE=/etc/gitlab-runner/certs/${SERVER}.crt

sudo mkdir -p $(dirname "$CERTIFICATE")

openssl s_client -connect ${SERVER}:${PORT} -showcerts </dev/null 2>/dev/null | sed -e '/-----BEGIN/,/-----END/!d' | sudo tee "$CERTIFICATE" >/dev/null
登录后复制

一旦获得证书,您可以使用 --tls-ca-file 选项注册运行程序,如前所述。

请注意,由于 gitlab-runner 版本 1.11 中的错误,此方法可能不适用于自定义 CA 签名证书.2.如果遇到问题,建议升级到较新版本的 gitlab-runner。

以上是如何解决 GitLab-CI Runner 自签名证书验证错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板