J'ai commencé à chercher des certificats SSL quand je suis tombé sur chiffrons , et je voulais l'utiliser avec gitlab, étant toutefois qu'il fonctionne sur un Raspberry Pi 2 et qu'il fonctionne parfaitement maintenant (donc Je ne veux rien gâcher), est-ce que j'irais installer un certificat ssl permet de crypter correctement? PS: Mon installation est omnibus
Il existe 2 façons selon la configuration de votre infrastructure (Raspi, gros serveur Cloud ou quelque chose entre les deux):
Si vous avez un serveur accessible en externe (signifie que votre hôte Gitlab peut être appelé à partir des serveurs Let´s Encrypt, ce qui est nécessaire pour Let´s Encrypt´s mécanisme automatique de vérification que vous "possédez" un certain domaine comme gitlab.yoursite.com
et le serveur/hôte correspondant et résolu DNS) la seule chose nécessaire (à partir de Gitlab version 10.7) est d'ajouter un s vers le http dans votre configuration d'URL Gitlab dans /etc/gitlab/gitlab.rb
(comme marcolz déjà mentionné):
external_url 'https://gitlab.yoursite.com'
À partir des documents dans https://docs.gitlab.com/omnibus/settings/ssl.html#let-39-s-encrypt-integration :
Omnibus-gitlab peut récupérer et renouveler automatiquement les certificats de Let's Encrypt pour vous.
Si votre hôte Gitlab n'est pas accessible de l'extérieur par les serveurs Let´s Encrypt , l'ensemble du processus est beaucoup plus difficile! Vous quitterez alors la manière automatique de Nice de laisser Gitlab Omnibus faire le gros du travail pour vous. Vous devez absolument récupérer les certificats Let´s Encrypt par vous-même maintenant Il existe plusieurs façons de récupérer les certificats Let´s Encrypt sans avoir besoin d'un serveur accessible en externe.
Celui que je choisis et que je recommanderais est d'utiliser le client alternatif Let´s Encrypt déshydraté avec dns-Lexicon pour automatiser entièrement le processus d'obtention des certificats avec le Encryptons dns-challenge
, qui a été introduit quelque part en 2016. C'est le seul moyen où vous n'avez pas besoin d'un serveur accessible de l'extérieur - mais vous devez à nouveau "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 (voici - liste des fournisseurs DNS pris en charge dans ce cas ).
Comme l'ensemble du processus est assez complexe, j'ai créé un playbook Ansible entièrement compréhensible prepare-gitlab.yml où chaque étape de l'installation de Gitlab avec Omnibus est gérée pour vous (sources GitHub complètes sont disponibles ici: https://github.com/jonashackt/gitlab-ci-stack ).
Si vous ne voulez créer que les certificats Let´s Encrypt, jetez un œil à get-letsencrypt-certs-dehydrated-Lexicon.yml - même si vous ne voulez pas utiliser Ansible, vous pouvez aussi reproduisez manuellement chaque étape de la console ou utilisez un autre outil d'automatisation comme Chef ou Saltstack (bien que je ne puisse pas le recommander personnellement). Une autre façon serait de jeter un coup d'œil sur cet excellent article de blog des gars de Lexicon: https://blog.thesparktree.com/generating-intranet-and-private-network-ssl , à partir des étapes décrites J'ai essentiellement développé le playbook à partir de.
Dans les deux cas, n'oubliez pas de copier les certificats Let´s Encrypt récupérés manuellement (ou automatiquement)
/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 la documentation dans la façon de configurer manuellement HTTPS
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:
webroot
pour Let's Encrypt/var/www/letsencrypt
et utilisez ce répertoire comme webroot-path
pour Let's EncryptModifiez les valeurs de configuration suivantes dans /etc/gitlab/gitlab.rb
et courir gitlab-ctl reconfigure
après ça:
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 fourni avec le package Omnibus, vous pouvez en outre 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 modifier le external_url
à https://...
et exécutez à nouveau gitlab-ctl reconfigure
Cette méthode est très élégante car elle monte simplement le répertoire /var/www/letsencrypt/.well-known
utilisé par l'authentificateur Let's Encrypt dans la racine Web 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 Let's Encrypt.
Je n'ai aucune idée si l'installation diffère sur un Raspberry Pi. Le processus d'installation de Let's Encrypt fait de la magie dont je ne sais rien.
Tapez grep 'external_url' /etc/gitlab/gitlab.rb
pour vérifier le nom du site Web. À titre d'exemple https: // gitlab.example.com : 50000
Si votre URL externe ne commence pas par https
, modifiez-la pour commencer par https
La partie en gras sera votre <your domain name>
Suivez les instructions d'installation de Let's Encrypt sur ce lien: https://letsencrypt.org/howitworks/
Je ne copie pas les instructions car elles peuvent changer (car le programme est actuellement en version bêta ouverte). Ce que vous devez exécuter dépend de si vous avez également des sites Web exécutés sur Apache pour lesquels vous souhaitez générer des certificats Let's Encrypt.
Une fois que vous avez généré vos certificats Let's Encrypt, ils se trouvent dans /etc/letsencrypt/live/<your domain name>/
Gitlab attend deux fichiers situés dans /etc/gitlab/ssl/
Il y a quelque chose dont je ne suis pas sûr, vous devrez peut-être convertir les certificats .pem en utilisant la réponse à cet emplacement: Convertir .pem en .crt et .key
Copiez le certificat de /etc/letsencrypt/live/<your domain name>/cert.pem
à /etc/gitlab/ssl/<your domain name>.crt
Copiez la clé privée de /etc/letsencrypt/live/<your domain name>/privkey.pem
à /etc/gitlab/ssl/<your domain name>.key
Courir gitlab-ctl reconfigure
Au cas où cela 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 précédemment (via l'installation à partir de la source), et j'essayais simplement d'ajouter SSL, en utilisant Let's Encrypt.
Les points clés sont:
standalone
de letsencrypt
gitlab-Shell
Vous devez installer manuellement les certificats générés dans /etc/gitlab/ssl
et définissez l'url externe sur https dans /etc/gitlab/gitlab.rb
comme décrit dans: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md
Vous devez installer les certificats générés manuellement dans/etc/gitlab/ssl et définir l'url externe sur 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, vous n'avez donc pas besoin de copier les certificats. entrez la description du lien ici