Gitlab : comment passer de http à https facilement
Vous avez installé une instance Gitlab et vous souhaiteriez avoir votre adresse en https avec un certificat Let's Encrypt et éventuellement sur un port autre que le 443 ?
Vous êtes au bon endroit.
Je ne détaillerai pas les commandes et ou path pour différentes distributions
Si vous utilisez le port 443 par défaut, cela fonctionne aussi.
Si vous ne souhaitez pas utiliser les paramètres prévus à cet effet dans le fichier de conf de Gitlab cela fonctionne aussi à condition de penser à faire un script pour renouveler votre certificat avant l'échéance des trois mois concernant Let's Encrypt.
Si le port 80 est utilisé par autre chose, sachez que vous aurez besoin de ce port pour générer le certificat, en effet Certbot passe par là.
Par défaut toutes les commandes sont passées sur Debian, à vous d'adapter si vous êtes sur Red Hat et ou Centos par exemple.
Ready ?
Ok, Let's go !!!
À la fin de votre installation de Gitlab via la commande:
Installez Certbot
apt install python3-certbot -y
Puis, générez votre certificat
certbot certonly --standalone -d domain.com
Ou
certbot certonly --standalone -d sub.domain.com
Maintenant éditez le fichier de conf /etc/gitlab/gitlab.rb
Avec votre éditeur préféré, et modifiez l'URL
external_url 'https://domain.com:8443'
Si vous êtes sur une instance qui tourne déjà en http et que vous modifiez par le port par défaut, rajoutez simplement un s à http
Puis, plus loin dans le fichier, décommettez les lignes suivantes en les modifier
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
Ainsi que celle-ci en mettant le path de votre certificat Let's Encrypt en n'oubliant pas de modifier le path de votre certificat en remplaçant domain.com par votre FQDN
nginx['ssl_certificate'] = "/etc/letsencrypt/live/domain.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/domain.com/privkey.pem"
Modifiez aussi cette ligne là aussi
letsencrypt['enable'] = false
Enfin enregistrez le fichier, puis :
gitlab-ctl reconfigure
Quand votre instance est démarrée ou redémarrée, connectez-vous dessus avec votre navigateur préféré via l'URL que vous avez rempli dans le fichier de conf
Si vous avez suivi ces étapes, vous devriez être en https
Il ne vous reste plus qu'a vous faire un petit script pour renouveler le certificat avant son expiration.
Une base de départ éventuelle pour trouver l'échéance de votre certificat: