Comment utiliser let's encrypt avec gitlab?

j'ai commencé à regarder dans les certificats ssl quand je suis tombé sur cryptons , et je voulais l'utiliser avec gitlab, cependant étant donné qu'il fonctionne sur un raspberry pi 2 et son fonctionnement tout à fait parfaitement maintenant (donc je ne veux pas gâcher quoi que ce soit), il serait je vais à propos de l'installation d'un certificat SSL encrypt correctement? PS: mon installation est omnibus

32
demandé sur chabad360 2015-12-10 00:19:43

6 réponses

il y a 2 façons selon la configuration de votre infrastructure (Raspi, big Cloud server ou quelque chose entre les deux):

  1. si vous avez un serveur accessible de l'extérieur (signifie que votre hôte Gitlab est appelable à partir des serveurs Lets Encrypt, qui est nécessaire pour lets Encrypts mécanisme automatique de vérifier que vous "possédez" un certain domaine comme gitlab.yoursite.com et le correspondant et Dns résolu serveur / hôte) la seule chose nécessaire (à partir de Gitlab version 10.7) est d'ajouter un s à la http dans votre Gitlab de configuration de l'URL dans /etc/gitlab/gitlab.rb (comme marcolz déjà cité):

    external_url 'https://gitlab.yoursite.com'

du docs dans https://docs.gitlab.com/omnibus/settings/ssl.html#let-39-s-encrypt-integration :

Omnibus-gitlab peut automatiquement récupérer et renouveler les certificats de Let's Encrypt pour vous.

  1. si votre hôte Gitlab n'est pas accessible de L'extérieur par les serveurs lets Encrypt , l'ensemble du processus est beaucoup plus difficile! Vous quitterez alors la belle façon automatique de laisser Gitlab Omnibus faire le gros du travail pour vous. il faut absolument aller chercher les Lets Chiffrez les certificats vous-même maintenant! il y a certaines façons de récupérer les certificats Encrypt Lets sans avoir besoin d'un serveur accessible de l'extérieur.

    celui que je choisis et que je recommande est d'utiliser l'alternative Lets Encrypt client déshydraté avec le DNS-lexicon pour automatiser complètement le processus d'obtention des certificats avec le lets Encrypt dns-challenge , qui a été introduit quelque part en 2016. C'est la seule façon, où vous n'avez pas besoin d'un serveur accessible de l'extérieur - mais vous avez encore besoin de "posséder" un certain domaine comme gitlab.yoursite.com et vous avez besoin D'un accès API au fournisseur DNS, qui héberge votre domaine (heres a liste des fournisseurs DNS pris en charge dans ce cas ).

    comme tout le processus est assez complexe, j'ai créé un entièrement compréhensible playbook préparez-gitlab.yml où chaque étape de L'installation Gitlab avec Omnibus est gérée pour vous (les sources complètes de Github sont disponibles ici: https://github.com/jonashackt/gitlab-ci-stack ).

    si vous voulez seulement créer les certificats de cryptage sel-Lets, jetez un oeil à obtain-letsencrypt-certs-déshydrated-lexicon.yml - même si vous ne voulez pas utiliser Ansible, vous pouvez également reproduire manuellement chaque étape sur la console ou utiliser un autre outil d'automatisation comme Chef ou Saltstack (bien que je ne peux pas le recommander personnellement). Une autre façon serait d'avoir un oeil sur ce grand blogpost des gars de lexicon: https://blog.thesparktree.com/generating-intranet-and-private-network-ssl , à partir de ces étapes décrites, j'ai essentiellement développé le playbook à partir.

    de toute façon vous choisissez, n'oubliez pas de copier la manuellement (ou automatiquement) récupéré permet de chiffrer les certificats de

    /srv/dehydrated/certs/{{ gitlab_domain }}/fullchain.pem

    à

    /etc/gitlab/ssl/{{ gitlab_domain }}.crt

    et

    /srv/dehydrated/certs/{{ gitlab_domain }}/privkey.pem

    à

    /etc/gitlab/ssl/{{ gitlab_domain }}.key

    Gitlab les récupérera automatiquement pour vous, comme l'indique le docs dans la façon de configurer manuellement HTTPS

4
répondu jonashackt 2018-05-23 13:35:28

la meilleure solution que j'ai pu trouver pour l'instant est décrite dans ce billet de blog . Je ne vais pas tout réciter, mais les points clés sont:

  • utilisez l'authentificateur webroot pour chiffrer
  • créer le dossier /var/www/letsencrypt et utiliser ce répertoire comme webroot-path pour Let's Encrypt
  • changez les valeurs de configuration suivantes dans /etc/gitlab/gitlab.rb et lancez gitlab-ctl reconfigure après cela:

    nginx['redirect_http_to_https'] = true
    nginx['ssl_certificate']= "/etc/letsencrypt/live/gitlab.yourdomain.com/fullchain.pem"
    nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.yourdomain.com/privkey.pem"
    nginx['custom_gitlab_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"
    
  • si vous utilisez Mattermost qui est livré avec le paquet Omnibus, alors vous pouvez également définir ces options dans /etc/gitlab/gitlab.rb :

    mattermost_nginx['redirect_http_to_https'] = true
    mattermost_nginx['ssl_certificate']= "/etc/letsencrypt/live/gitlab.yourdomain.com/fullchain.pem"
    mattermost_nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.yourdomain.com/privkey.pem"
    mattermost_nginx['custom_gitlab_mattermost_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"
    
  • après avoir demandé votre premier certificat, n'oubliez pas de changer le external_url en https://... et d'exécuter à nouveau gitlab-ctl reconfigure

  • "

cette méthode est très Elégant car il ne fait que monter le répertoire /var/www/letsencrypt/.well-known utilisé par L'authentificateur Encrypt dans le web-root Gitlab via une configuration Nginx personnalisée et l'authentification est toujours possible lorsque Gitlab est en cours d'exécution. Cela signifie que vous pouvez renouveler automatiquement les certificats chiffrons.

62
répondu rkallensee 2016-07-17 22:12:44

je n'ai aucune idée si l'installation diffère sur un Raspberry Pi. Cryptons le processus d'installation fait de la magie dont je ne sais rien.

Prepare Gitlab

Tapez grep 'external_url' /etc/gitlab/gitlab.rb pour vérifier le nom du site web. Comme exemple https: / / gitlab.example.com : 50000

si votre URL externe ne commence pas par https , changez-la pour commencer par https

La partie en gras sera votre <your domain name>

générer les certificats

suivez les instructions D'installation de chiffrement sur ce lien: https://letsencrypt.org/howitworks /

Je ne copie pas les instructions car elles peuvent changer (car le programme est en beta ouverte en ce moment). Ce que vous devez exécuter dépend de si vous avez aussi des sites Web qui tournent sur Apache que vous voulez générer Nous allons Chiffrer certs.

une fois que vous avez généré vos certificats Let's Encrypt, ils sont situés dans /etc/letsencrypt/live/<your domain name>/

copier les certificats

Gitlab attend deux fichiers localisés dans /etc/gitlab/ssl/

il y a quelque chose dont je ne suis pas sûr, vous pourriez avoir à convertir le .PEM certificats en utilisant la réponse à cet endroit: convertir .pem .crt et .clé

copier le certificat de /etc/letsencrypt/live/<your domain name>/cert.pem à /etc/gitlab/ssl/<your domain name>.crt

copier la clé privée de /etc/letsencrypt/live/<your domain name>/privkey.pem à /etc/gitlab/ssl/<your domain name>.key

Reconfigurer

Exécuter gitlab-ctl reconfigure

8
répondu Hay 2017-05-23 12:18:12

vous devez installer manuellement les certificats générés dans /etc/gitlab/ssl et définir l'url externe de https dans /etc/gitlab/gitlab.rb comme décrit dans: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md

1
répondu marcolz 2015-12-10 08:23:47

au cas où il serait utile à quelqu'un d'autre, j'ai écrit le processus que j'ai utilisé ici: http://kelan.io/2016/using-lets-encrypt-to-add-ssl-to-gitlab /

J'avais configuré GitLab previous (via install à partir des sources), et j'essayais juste d'ajouter SSL, en utilisant Let's Encrypt.

les points clés sont:

  • utilisez le standalone mode de letsencrypt
  • faire une copie des certs lisible par gitlab-shell
1
répondu Kelan 2016-03-21 00:25:19

vous devez installer manuellement les certificats générés dans /etc/gitlab/ssl et définir l'url externe de https dans /etc/gitlab/gitlab.rb comme décrit dans: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md

je préfère utiliser des liens symboliques, donc vous n'avez pas besoin de copier les certificats. entrez la description du lien ici

0
répondu fGeyer 2017-05-23 11:54:53