关于如何成功链接Jenkins和Gitlab以获得良好的CI,有大量的文章和文章。这些都不对我有用,尤其是因为我尝试做的事总是在詹金斯方面遇到证书错误。这里有两个例子:
无法连接到存储库... stderr:致命:无法访问'https://**.git/':SSL证书问题:证书已过期
客户端错误:的证书与证书主题的通用名称不匹配:MyCompany
这使我想到了这个问题。我不确定我的案件是否是“自签名证书”一词的示例,但是我知道,每当打开公司的GitLab页面时,都会在该页面上看到证书错误。当我打开证书时。信息,它表明证书是:有效期至:2017年4月。因此显然已过期。不知道为什么我们不更新它,但是我想知道我们是否在使用带有过期证书的GitLab。完全消除零是我让詹金斯与GitLab交谈的机会。
我正在非常努力地让詹金斯(Jenkins)在这里工作-但是,如果是证书,我是在浪费时间尝试吗?过期了吗?我还有更多选择可以使这项工作吗?
谢谢。
答案 0 :(得分:0)
今天晚上,我遇到了同样的问题,由于我的Gitlab服务器上的ssl证书过期,因此我在Jenkins中的构建中断了。以下列出了在Gitlabs ssl证书过期时Jenkins尝试从Gitlab存储库中提取时,要纠正Jenkins构建错误所需采取的步骤。
**以下所有命令均在Ubuntu 16.04上运行
1)为您的Gitlab服务器生成CSR或SAN CSR
这将产生.csr和.key文件
不要共享或发布“ .key”文件(您的私钥)
将这些文件用于步骤2
2)为Gitlab服务器生成SSL证书(这将生成.crt文件)
3)将.crt和.key文件放入/ etc / gitlab / ssl /(Ubuntu 16.04)
sudo openssl x509 -req -days 365 -in“ /etc/gitlab/ssl/gitlab.csr” -signkey“ /etc/gitlab/ssl/gitlab.key” -out“ / etc / gitlab / ssl / gitlab .crt”
4)编辑/etc/gitlab/gitlab.rb文件以反映您的新通用名
external_url'https://'#ip地址或DNS名称
5)重新配置Gitlab(如果您没有更改常用名,请跳过此步骤
sudo gitlab-重新配置
6)重新启动gitlab服务器,以使更改生效
sudo systemctl重新启动gitlab-runsvdir.service
7)确认服务器已重新联机
sudo systemctl状态gitlab-runsvdir.service
8)现在,在您的Jenkins服务器上,您需要使用新的Gitlab服务器证书更新/etc/ssl/certs/ca-certificates.crt
**同样,我正在Ubuntu 16.04中运行此程序(可能因平台而异)
**将下面命令中的更改为gitlab服务器的通用名称
sudo su -
echo -n | openssl s_client -showcerts -connect <common_name_goes_here>:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> /etc/ssl/certs/ca-certificates.crt
9)尝试在Jenkins中运行构建