如何在 GitLab 运行器注册期间解决此错误"certificate relies on legacy Common Name field, use SANs instead"?



我试图在我的gtilab服务器上注册一个gitlab运行程序,但收到了以下错误:"x509:证书依赖于遗留的"通用名称"字段,请改用SAN;。

我读了很多网页,但我很困惑,无法解决我的问题。

  • 我使用以下链接安装了gitlab:为ubuntu安装gitlab
  • 在我的gitlab上,我看到了";设置CI/CD Runners";显示转轮安装">
  • 我执行了命令";sudo gitlab runner register--urlhttps://myGitlab.com/--注册令牌我的令牌

我阅读了以下页面以找到解决方案:

  • x509:证书依赖于遗留的"通用名称"字段,请改用SAN
  • 如何将SAN与openSSL一起使用而不是使用通用名称
  • 自签名证书或自定义证书颁发机构

我明白我应该为";系统";或用于gitlab。是这样吗?

更简单的解决方案是什么;系统证书";(如gitlab文档所述)还是为gitlab创建专用证书?

但是ubuntu上的系统证书存储在哪里?或者在哪里为gitlab服务器定义自定义证书?

最后一个问题是:如何生成一个好的证书?

还有一个答案是故障排除-设置专用GitLab服务器并连接GitLab Runners。有人测试过吗?

非常感谢您的帮助。

我有时会花一些时间,下面的烹饪书解决了我的问题。在所有命令之后,我能够运行以下简单的管道。

阶段:-构建-试验-测试2-部署生成作业:阶段:生成脚本:-echo"你好,$GITLAB_USER_LOGIN!"test-job1:阶段:测试脚本:-echo"这份工作测试了一些东西"test-job2:阶段:测试脚本:-echo"这个工作测试一些东西,但比test-job1花费更多的时间。"-echo"echo命令完成后,将运行睡眠命令20秒"-echo"模拟比test-job1长20秒的测试"-睡眠20部署产品:阶段:部署脚本:-echo"此作业从$CI_COMMIT_BRANCH分支部署一些东西。">

注册的运行程序是一个shell运行程序,使用root用户执行命令。参见外壳流道

在下文中,linux用户是myUser,gitlab url是mygitlab-site.com,gitlab项目是myProject,runner令牌是A_token(此令牌可在页面设置CI/CD Runners中找到)。

烹饪书的起点是:

  • Gitlab部署在您自己的服务器上
  • 主机文件已经被更新以定义类似于DNS条目"的东西;XXX。XXX。XX。XXX mygitlab-site.com
  • gitlab runner是使用设置CI/CD Runners"来安装的;显示转轮安装">
  • 你在ubuntu上以myUser的身份连接

目标是:

  • 创建一个伪证书颁发机构
  • 创建具有使用者备用名称(SAN)的证书
  • 将这些证书放入gitlab证书文件夹
  • 允许root用户使用ssh进行连接
  • 修复了root的knonwn主机列表
  • 在系统的证书颁发机构文件夹中添加虚拟证书颁发机构
  • 注册跑步者
cd~openssl rand-writerand.rndchmod a+rwx~myUser/.rndcd/tmpmkdir essaiopenssl genrsa-out ca.key 2048openssl-req-new-x509-days 365-key ca.key-subj"/C=CN/ST=GD/L=SZ/O=Acme,股份有限公司/CN=Acme Root ca"-out ca.crtopenssl-req-newkey rsa:248-nodes-key-out server.key-subj"/C=CN/ST=GD/L=SZ/O=Acme,股份有限公司/CN=*mygitlab-site.com"-out server.csropenssl x509-req-extfile<printf"subjectAltName=DNS:mygitlab site.com")-days 365-在服务器.csr-CA CA.crt-CAkey CA.key-CAcreateserial-输出服务器.crtsudo cp*/etc/gitlab/sslcd/etc/gitlab/sudo mkdir bck sslcd sslsudo mv mygitlab-site.com.crt mygitlab-site.com.key../bck ssl/sudo mv服务器.crt mygitlab-site.com.crtsudo mv服务器.key mygitlab-site.com.keysudo rm服务器.csrsudo gitlab ctl重启sudo密码根sudo-vi/etc/ssh/shd_config(使用https://www.ubuntu18.com/ssh-permitrootlogin/)sudo systemctl重新启动sshd.servicesu-root(以root身份连接)cd~cd.sshssh密钥生成-t rsachmod 600 id_rsachmod 644 id_rsa.pubecho>known_hostschmod 600已知主机cd。。chmod 600.sshgit克隆git@mygitlab-site.com:myUser/myProject.git(更新已知主机列表的提示)退出root用户cd/etc/gitlab/sslsudo cp ca.crt ca.pemsudo cp ca.pem/etc/ssl/certs/ca.pemsu-root(以root身份连接)cd/etc/ssl/certs/更新ca证书退出root用户sudo gitlab ctl重启sudo gitlab runner register--tls ca file=/etc/gitlab/ssl/ca.crt--urlhttps://mygitlab-site.com/--注册令牌A_token

相关内容

最新更新