/ Github

Gitlab mit Let's Encrypt ausstatten

Seitdem ich mich die letzten Wochen deutlich vermehrt mit Git(hub) auseinander gesetzt habe - besser spät als nie - habe ich mir die Tage eine Gitlab-Installation aufgesetzt. Die Installation ging dank fertiger Pakete und vorhandener Paketquelle sehr schnell über die Bühne.

Lediglich die Tatsache, dass Gitlab von Haus aus kein SSL ausliefert hat mich etwas gestört, aber auch das ist zum Glück schnell erledigt.

Als erstes muss der Certbot-Client installiert werden. Dieser ist glücklicherweise mittlerweile sowohl in den Paketquellen von CentOS als auch von Debian enthalten.

Nachdem der Certbot-Client installiert wurde, wechseln wir in den Ordner /etc/letsencrypt. Dort wird die Datei gitlab.ini mit folgendem Inhalt angelegt:

authenticator = webroot
domains = git.domainame.de
email = eine@email.de
rsa-key-size = 4096

webroot-path = /var/www/letsencrypt

Das unter webroot-path genannte Verzeichnis muss sofern noch nicht vorhanden ist, auf jeden Fall angelegt werden.
Anschließend müssen in der /etc/gitlab/gitlab.rb folgende Angaben angepasst bzw. hinzugefügt werden:

nginx['enable'] = true
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/git.domainame.de/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/git.domainame.de/privkey.pem"
nginx['ssl_ciphers'] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256"
nginx['ssl_prefer_server_ciphers'] = "on"
nginx['ssl_protocols'] = "TLSv1.1 TLSv1.2"
nginx['ssl_session_cache'] = "builtin:1000  shared:SSL:10m"
nginx['ssl_session_timeout'] = "5m"
nginx['custom_gitlab_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"

Mittels einem gitlab-ctl reconfigure wird die Konfiguration anschließend neu eingelesen.
Nun lässt sich mit dem Befehlk certbot certonly -c /etc/letsencrypt/gitlab.ini das Zertifikat für Gitlab von Let's Encrypt abrufen.

Abschließend noch einmal die gitlab.rb öffnen und folgende Variable anpassen:

external_url 'https://gitlab.yourdomain.de'

Wichtig ist, dass aus dem http ein https wird. Zum letzten mal noch einmal ein gitlab-ctl reconfigure und Gitlab ist über HTTPS erreichbar.