Comment puis-je utiliser que de chiffrer avec gitlab?
J'ai commencé à regarder dans les certificats ssl quand je suis tombé sur let's encrypt, et je voulais l'utiliser avec gitlab, cependant le fait qu'elle est en cours d'exécution sur un raspberry pi 2 et son fonctionnement tout à fait parfaitement l'instant (donc je ne veux pas gâcher quoi que ce soit), il aurais-je aller sur l'installation permet de chiffrer certificat ssl correctement?
PS: Mon installation est omnibus
- Il y a un bel article ici pour quiconque veut tout avec GitLab est gratuit service hébergé: about.gitlab.com/2016/04/11/...
- Vous pouvez également jeter un oeil à l'étape par étape les instructions ici : mkkhedawat.com/Enabling-HTTPS-for-Gitlab-pages-using-Certbot
Vous devez vous connecter pour publier un commentaire.
Il y a 2 manières en fonction de votre infrastructure de l'installation (Raspi, gros Nuage de serveur ou quelque chose entre les deux):
Si vous avez un accessible de l'extérieur Serveur (signifie que votre Gitlab hôte est appelée à partir de la vous Permet de Crypter des serveurs, ce qui est nécessaire pour vous Permet de Chiffre mécanisme automatique de vérifier que vous "propre" d'un certain domaine comme
gitlab.yoursite.com
et le DNS et 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à mentionné):external_url 'https://gitlab.yoursite.com'
De la documentation dans https://docs.gitlab.com/omnibus/settings/ssl.html#let-39-s-encrypt-integration:
Si votre Gitlab hôte n'est pas accessible de l'extérieur par la Permet de Chiffrer les serveurs, l'ensemble du processus est beaucoup plus difficile! Vous allez ensuite quitter le nice automatique moyen de laisser les Gitlab Omnibus faire le gros du travail pour vous. Vous avez certainement besoin de récupérer les Permet de Chiffrer des certificats sur votre propre maintenant! Il y a quelques façons de récupérer Permet de Chiffrer les certificats sans avoir besoin d'un serveur accessible de l'extérieur.
Celui que je choisis et je recommande est d'utiliser l'alternative Permet de Chiffrer client déshydraté avec le dns-lexique d'automatiser entièrement le processus d'obtention des certificats avec la Permet de Chiffrer
dns-challenge
, qui a été introduit quelque part en 2016. C'est la seule façon, où vous n'avez pas besoin un serveur accessible de l'extérieur - mais vous avez encore besoin de "posséder" un certain domaine commegitlab.yoursite.com
ET vous avez besoin de l'accès à l'API du fournisseur de DNS qui héberge votre domaine (heres un liste des fournisseurs de DNS dans ce cas).Comme l'ensemble du processus est assez complexe, j'ai créé un compréhensibles Ansible playbook préparez-gitlab.yml où chaque étape de la Gitlab installation avec Omnibus est fait pour vous (plein GitHub sources sont disponibles ici: https://github.com/jonashackt/gitlab-ci-stack).
Si vous souhaitez uniquement créer des Permet de Chiffrer les certificats, ont un coup d'oeil dans obtenir-letsencrypt-certs-déshydraté-lexique.yml - même si vous ne voulez pas l'utiliser Ansible, vous pouvez également reproduire manuellement à chaque étape sur la console ou utiliser un autre outil d'automatisation comme un Chef ou d'un Saltstack (bien que je ne peux pas recommander que, personnellement). Une autre façon serait d'avoir un regard sur ce grand article sur le blog à partir du lexique gars: https://blog.thesparktree.com/generating-intranet-and-private-network-ssl, à partir de celles qui sont décrites les étapes en gros, j'ai développé le playbook de.
Soit le moyen que vous choisissez, n'oubliez pas de copier manuellement (automatiquement) récupérée 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 va les chercher à partir de là, automatiquement pour vous, comme les docs de l'état dans la façon de configurer manuellement l'adresse HTTPS
La meilleur solution que j'ai été en mesure de trouver pour l'instant est décrit dans ce blog. Je ne vais pas réciter tout, mais les points clés sont les suivants:
webroot
authentificateur pour Let's Encrypt/var/www/letsencrypt
et de l'utilisation de ce répertoire commewebroot-path
pour Let's EncryptModifier la config des valeurs dans
/etc/gitlab/gitlab.rb
et exécutergitlab-ctl reconfigure
après que:Si vous utilisez Mattermost qui est livré avec l'Omnibus paquet, vous pouvez en outre définir ces options dans
/etc/gitlab/gitlab.rb
:Après avoir demandé votre premier certificat n'oubliez pas de changer le
external_url
àhttps://...
et exécutez à nouveaugitlab-ctl reconfigure
Cette méthode est très élégant, comme il vient monte le répertoire
/var/www/letsencrypt/.well-known
utilisé par le Let's Encrypt authentificateur dans le Gitlab web-root via un custom Nginx configuration et l'authentification est toujours possible quand Gitlab est en cours d'exécution. Cela signifie que vous pouvez renouveler automatiquement le Let's Encrypt certificats.custom_gitlab_server_config
me permet de mettre dans une simple tâche cron pour renouveler mon certificat, sans vous embêter avec l'arrêt de gitlab premier. Avez-vous une idée si gitlab-ctl reconfigurer serait nécessaire quand la .pem touches sont en rotation?gitlab-ctl reconfigure
n'est pas nécessaire puisque la configuration elle-même ne change pas, mais pour faire de nginx (et probablement d'autres composants) ramasser le nouveau certificat ungitlab-ctl restart
devrait être fait. Probablement ungitlab-ctl restart nginx
est assez./opt/gitlab/embedded/service/gitlab-rails/public
que le répertoire webroot pour une installation omibusregistry_nginx['custom_gitlab_server_config'] = "location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"
à la liste:
à partir du registre config - gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/789mattermost_nginx['custom_gitlab_mattermost_server_config']
Je n'ai aucune idée si l'installation diffère sur un Raspberry Pi. Nous allons Chiffrer le processus d'installation un peu de magie je ne sais rien à ce sujet.
Préparer Gitlab
Type
grep 'external_url' /etc/gitlab/gitlab.rb
pour vérifier le nom du site web. Comme un exemple https://gitlab.example.com:50000Si votre URL ne commence pas par
https
, le changer, à commencer parhttps
La partie en gras sera votre
<your domain name>
Générer les certificats
Suivre le Let's Encrypt installer des instructions sur ce lien: https://letsencrypt.org/howitworks/
Je ne suis pas copier les instructions, car ils peuvent changer (comme le programme est en open beta pour le moment). Ce que vous avez à exécuter dépend si vous avez également des sites web en cours d'exécution sur Apache, vous voulez générer des Let's Encrypt certs pour.
Une fois que vous avez généré votre nous allons Chiffrer les certificats, ils sont situés dans
/etc/letsencrypt/live/<your domain name>/
Copier les certificats
Gitlab attend deux fichiers situés dans
/etc/gitlab/ssl/
Il y a quelque chose que je ne suis pas sûr à ce sujet, vous pourriez avoir à convertir les .pem certificats à l'aide de la réponse à cet emplacement: Convertir des .pem .crt et .clé
Copie du certificat de
/etc/letsencrypt/live/<your domain name>/cert.pem
à/etc/gitlab/ssl/<your domain name>.crt
Copie de la clé privée à partir de
/etc/letsencrypt/live/<your domain name>/privkey.pem
à/etc/gitlab/ssl/<your domain name>.key
Reconfigurer
Exécuter
gitlab-ctl reconfigure
Vous devez installer les certificats générés manuellement dans
/etc/gitlab/ssl
et de 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.mdDans le cas où c'est 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 mis en place GitLab précédente (via l'installer à partir des sources), et a été juste essayer d'ajouter le protocole SSL, à l'aide de Let's Encrypt.
Les points essentiels sont:
standalone
mode deletsencrypt
gitlab-shell
Je préfère utiliser des liens symboliques, de sorte que vous n'avez pas besoin de copier les certificats.
entrez description du lien ici