Puncte:0

GitLab oferă o listă de certificate cu 1 certificate

drapel ru

Încerc să rulez programul de instalare omnibus al GitLab și să folosesc certificatul SSL al organizației mele, dar clienții SSL se plâng că emitentul certificatului este necunoscut. Cum ar trebui să configurez certificatele intermediare în lanțul de încredere?

Configurarea mea începe cu rularea celei mai recente versiuni de GitLab, expunând porturile pentru HTTPS și HTTP, printre altele:

sudo docker run --detach --hostname myserver.myorg.org --publish 1443:443 --publish 1080:80 \
--publish 2222:22 --publish 5005:5005 --name gitlab1 \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:14.2.3-ce.0

Asta creează o mulțime de configurații implicite în /srv/gitlab/config, așa că merg și setez adresa URL a serverului gitlab.rb:

external_url „https://myserver.myorg.org”

Am primit un fișier de certificat și un fișier cheie de la organizația mea, așa că le-am copiat în /srv/gitlab/config/ssl director ca myserver.myorg.org.crt și myserver.myorg.org.key. Apoi reconfigurez serverul GitLab:

sudo docker exec -it gitlab1 bash -c "gitlab-ctl reconfigure"

Acum încerc să validez configurația SSL:

ecou | gnutls-cli -p1443 myserver.myorg.org

Primesc o grămadă de erori în rezultat, inclusiv acestea:

...
S-au procesat 129 certificat(e) CA.
Se rezolvă „myserver.myorg.org:1443”...
Se conectează la „127.0.0.1:1443”...
- Tip certificat: X.509
- Am o listă de certificate de 1 certificate.
...
- Stare: certificatul NU este de încredere. Emitentul certificatului este necunoscut. 
*** Verificarea PKI a certificatului serverului a eșuat...
*** Eroare fatală: Eroare în certificat.

Se pare că nu am lanțul de încredere complet. Emitentul certificatului organizației noastre este „CN=DigiCert TLS RSA SHA256 2020 CA1,O=DigiCert Inc,C=US”. Le-am găsit certificatele pe site-ul lor, și l-am descărcat pe acel anume:

wget https://cacerts.digicert.com/DigiCertTLSRSASHA2562020CA1-1.crt.pem

Am extras versiunea text a certificatului:

openssl x509 -in DigiCertTLSRSASHA2562020CA1-1.crt.pem -text
...
-----ÎNCEPE CERTIFICAT-----
MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBh
...
A7sKPPcw7+uvTPyLNhBzPvOk
-----CERTIFICAT FINAL-----

Am atașat asta la certificatul organizației mele în /srv/gitlab/config/ssl/myserver.myorg.org.crt deci acum are mai întâi certificatul organizației, apoi certificatul Digicert.

-----ÎNCEPE CERTIFICAT-----
... certificatul organizației noastre...
-----CERTIFICAT FINAL-----
-----ÎNCEPE CERTIFICAT-----
... Certificat Digicert pe care tocmai l-am descărcat
-----CERTIFICAT FINAL-----

Acesta este pasul în care sunt cel mai puțin încrezător. Mă bazez pe Instrucțiuni GitLab:

Asigurați-vă că utilizați întregul lanț de certificate pentru a preveni erorile SSL atunci când clienții se conectează. Ordinea completă a lanțului de certificate ar trebui să conțină mai întâi certificatul de server, urmat de toate certificatele intermediare, cu CA rădăcină în ultimul rând.

Asta înseamnă doar să lipiți cele două certificate împreună în același fișier?

Oricum, am condus reconfigura comandă și testat din nou:

sudo docker exec -it gitlab1 bash -c "gitlab-ctl reconfigure"
...
ecou | gnutls-cli -p1443 myserver.myorg.org

Primesc în continuare aceleași erori, inclusiv „Am primit o listă de certificate de 1 certificate”. Asta mă face să cred că nu am adăugat corect certificatul Digicert în lanț. De asemenea, am încercat să pun certificatul Digicert înaintea certificatului organizației noastre.

Doar ca să mă asigur că certificatele sunt valabile, am urmat acest post. The openssl s_server și openssl s_client au funcționat bine împreună, așa că cred că problema este configurația mea GitLab.

Puncte:0
drapel ru

Când am citit Documentația GitLab mai îndeaproape, mi-am dat seama că înțelesesem greșit diferența dintre reconfigura și hup nginx.

Dacă conținutul certificatelor dvs. SSL a fost actualizat, dar nu s-au făcut modificări de configurare la gitlab.rb, atunci gitlab-ctl reconfigure nu va afecta NGINX. În schimb, rulați sudo gitlab-ctl hup nginx pentru a determina NGINX să reîncarce configurația existentă și noile certificate cu grație.

am crezut reconfigura ar face totul în hup nginx plus mult mai mult. Se pare că reconfigura nu va observa o schimbare în fișierele de certificat dacă nu ați schimbat nimic în fișierul /srv/gitlab/config/gitlab.rb fişier.

Mi-am rezolvat problema rulând această comandă după ce am atașat certificatul intermediar /srv/gitlab/config/ssl/myserver.myorg.org.crt:

sudo docker exec -it gitlab1 bash -c "gitlab-ctl hup nginx"

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.