Gitlab-CI runner:忽略自签名证书

新手上路,请多包涵
gitlab-ci-multi-runner register

给我

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 8.13.1 和 gitlab-ci-multi-runner 1.11.2。

原文由 Etienne Gautier 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.3k
2 个回答

根据 Wassim 的回答,以及 关于 tls-self-signed 和 custom CA-signed certificates 的 gitlab 文档,如果您不是 gitlab 服务器的管理员,而只是服务器的运行者(如果运行者以根用户身份运行):

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

# Create the certificates hierarchy expected by gitlab
sudo mkdir -p $(dirname "$CERTIFICATE")

# Get the certificate in PEM format and store it
openssl s_client -connect ${SERVER}:${PORT} -showcerts </dev/null 2>/dev/null | sed -e '/-----BEGIN/,/-----END/!d' | sudo tee "$CERTIFICATE" >/dev/null

# Register your runner
gitlab-runner register --tls-ca-file="$CERTIFICATE" [your other options]

更新 1: CERTIFICATE 必须是证书文件的绝对路径。

更新 2 :由于 gitlab-runner 错误 #2675 ,自定义 CA 签名可能仍会失败

原文由 liberforce 发布,翻译遵循 CC BY-SA 4.0 许可协议

在我的例子中,我通过将路径添加到 .pem 文件来使其工作,如下所示:

 sudo gitlab-runner register --tls-ca-file /my/path/gitlab/gitlab.myserver.com.pem

通常,gitlab-runners 托管在 docker 容器中。在这种情况下,需要确保 tls-ca-file 在容器中可用。

原文由 Luiz Dias 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题