首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gitlab-CI runner:忽略自签名证书

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

Stack Overflow用户
提问于 2017-06-09 12:55:01
回答 6查看 64.5K关注 0票数 38
代码语言:javascript
复制
gitlab-ci-multi-runner register

给了我

代码语言:javascript
复制
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-多重跑者1.11.2.

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-11-09 16:13:00

根据Wassim的回答和关于tls的gitlab文档-自签名证书和自定义CA签名证书,如果您不是gitlab服务器的管理员,而是只负责运行程序的服务器(如果运行者是根用户),那么这里可以节省一些时间:

代码语言:javascript
复制
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:使用自定义CA签名可能仍然会失败,因为gitlab-运行程序错误#2675

票数 70
EN

Stack Overflow用户

发布于 2018-01-19 19:02:57

在我的例子中,我将路径添加到.pem文件中,如下所示:

代码语言:javascript
复制
sudo gitlab-runner register --tls-ca-file /my/path/gitlab/gitlab.myserver.com.pem

通常,gitlab-运行程序被托管在一个码头容器中。在这种情况下,需要确保容器中的tls-ca-file可用。

票数 18
EN

Stack Overflow用户

发布于 2017-06-10 16:28:18

好的,我一步一步地跟进这个帖子,http://moonlightbox.logdown.com/posts/2016/09/12/gitlab-ci-runner-register-x509-error,然后它就像一种魅力。为了防止死链接,我复制以下步骤:

首先在GitLab服务器(而不是运行程序)上编辑ssl配置

代码语言:javascript
复制
vim /etc/pki/tls/openssl.cnf

[ v3_ca ]
subjectAltName=IP:192.168.1.1 <---- Add this line. 192.168.1.1 is your GitLab server IP.

重新生成自签名证书

代码语言:javascript
复制
cd /etc/gitlab/ssl
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/gitlab/ssl/192.168.1.1.key -out /etc/gitlab/ssl/192.168.1.1.crt
sudo openssl dhparam -out /etc/gitlab/ssl/dhparam.pem 2048
sudo gitlab-ctl restart

将新CA复制到GitLab CI运行程序

代码语言:javascript
复制
scp /etc/gitlab/ssl/192.168.1.1.crt root@192.168.1.2:/etc/gitlab-runner/certs

谢谢@月亮之光

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44458410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档