Puncte:0

GitLab Runner pentru serverul GitLab cu certificat semnat CA eșuând cu: certificat autosemnat în lanțul de certificate

drapel md

Compania mea a schimbat Autoritatea de Certificare (era un singur CA și acum avem un CA rădăcină și un CA intermediar). Am schimbat cu succes configurația în instanța GitLab și am trecut la runner (adică pe un Ubuntu 18.04.5 LTS). Am încercat să urmăresc Documente GitLab fara succes.

Am urmat abordarea implicită Aici care spune „Implicit - Citiți certificatul de sistem”, așa că am adăugat certificatele (CA și Intermediar) la lista CA Ubuntu. Totul părea să funcționeze, deoarece alergătorul apare în GitLab.

Încep un loc de muncă și primesc:

Rulează cu gitlab-runner 11.5.0 (3afdaba6)
  pe RUN01 12ccbb74
Folosind Docker executor cu imagine node:latest...
Se trage nodul de imagine docker: cel mai recent...
Se utilizează imaginea docker sha256:ab773999a02271b25a9f3bce46018fc3ad46a7f922a5e3e8712b6d1c7087c415 pentru node:latest...
Rulează pe runner-12ccbb74-project-73-concurrent-0 prin (...)...
00:02
Se preiau modificări...
00:01
HEAD este acum la 60b6860 Actualizați dependența mocha la v9
fatal: nu se poate accesa „https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@(...).git/”: problemă cu certificatul SSL: nu se poate obține certificatul emitentului
EROARE: Lucrarea eșuată: codul de ieșire 1

Apoi am adăugat (pe instanța GitLab) lanțul complet la fișierul de certificat, iar eroarea s-a schimbat în Problemă cu certificatul SSL: certificat autosemnat în lanțul de certificate.

Logica mea*: Funcționează pentru Ubuntu, dar nu pentru Docker. Așa că m-am mutat la Certificatele TLS de încredere pentru executanții Docker și Kubernetes secțiune.

Ce am incercat pana acum, fara succes:

  1. Am adăugat certificatul Root CA la /etc/gitlab-runner/certs/ca.crt.
  2. Am încercat și cu un fișier cu CA rădăcină și CA intermediară în lanț.
  3. Am adăugat volumes = ["/cache", "/path/to-ca-cert-dir/ca.crt:/etc/gitlab-runner/certs/ca.crt:ro"] la config.toml fişier. Dar sunt aproape sigur că ar trebui să înlocuiesc /cale/la-ca-cert-dir cu ceva. Doar că nu știu ce.

*Actualizare: Când am instalat GitLab Runner, l-am urmărit Instalați folosind depozitul GitLab pentru Debian/Ubuntu/CentOS/RedHat, așa că instrucțiunile Docker/K8s nu aveau sens. Am postat un Răspuns despre cum am reușit să rezolv asta.

Puncte:1
drapel md

I was able to make it work following the third option in Supported options for self-signed certificates targeting the GitLab server, that says:

Read a PEM certificate: GitLab Runner reads the PEM certificate (DER format is not supported) from a predefined file:

/etc/gitlab-runner/certs/hostname.crt on *nix systems when GitLab Runner is executed as root.

If your server address is https://my.gitlab.server.com:8443/, create the certificate file at: /etc/gitlab-runner/certs/my.gitlab.server.com.crt.

So I just added the complete chain (GitLab certificate, Intermediate, Root) to a file name /etc/gitlab-runner/certs/<gitlab-url>.crt. Restarted the services with gitlab-runner restart and the job is working.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.