Gitlab Pages mit HTTPS konfigurieren

Datum

Gitlab bietet die Möglichkeit Webseiten zu hosten, hierfür muss das Feature „Pages“ konfiguriert werden.
Hier am Beispiel werden die Pages auf dem selben Server wie Gitlab ausgeliefert, installiert ist Gitlab in der „Omnibus Installation“ Version.

Für die Verwendung von Gitlab Pages sind CI Runner notwendig. Ohne diese können die Jobs nicht durchgeführt werden und die Seite wird nicht ausgeliefert.

Gitlab Pages konfigurieren

Um das Feature zu aktivieren, muss man die /etc/gitlab/gitlab.rb bearbeiten.

In dieser befinden sich der Parameter pages_external_url. In dieser muss die URL unter der Pages laufen soll angegeben werden.
Diese bestimmt auch, unter welcher Subdomain die Seiten dann standardmäßig erreichbar sind.

zb:
pages_external_url 'http://gitlab.<domain>.<tld>'

DNS Einstellungen

Damit die Webseiten auch direkt erreicht werden können bietet sich ein Wildcardeintrag im DNS an.

*.gitlab.<domain>.<tld> A <IP des Gitlab Servers>

HTTPS Verschlüsselung

Um den Zugriff auf die Pages direkt per HTTPS zu verschlüsseln muss man bei pages_external_url die Domain mit https angeben.
pages_external_url 'https://gitlab.<domain>.<tld>'

Zudem im Pages NGINX Bereich das entsprechende Zertifikat. Es empfiehlt sich zusätzlich noch die HTTP zu HTTPS Weiterleitung zu aktivieren.

################################################################################
## GitLab Pages NGINX
################################################################################
pages_nginx['redirect_http_to_https'] = true
pages_nginx['ssl_certificate'] = "<Pfad>"
pages_nginx['ssl_certificate_key'] = "<Pfad>"

Änderung übernehmen

Damit die Änderungen übernommen werden. Muss gitlab-ctl reconfigure ausgeführt werden.

Eigene Seitenerstellung einschränken

Es ist möglich, den Zugriff zum Pages Feature zu reglimentieren. Damit kann man verhindern, dass User sich den Domainname und das Zertifikat selbst wählen. Sondern ein vorgegebenes Zertifikat benutzen und eine URL nach gleichem Standard.

Hierfür muss man in den Admin Area -> Settings -> Pages, hier kann man nun das Häkchen bei „Require users to prove ownership of custom domains“ setzen oder nicht.

Sollte das Häkchen nicht gesetzt sein, ist der manuelle Zugriff gesperrt.

Die Gitlab Pages Seite wird mit dem SSL Zertifikat von Pages selbst ausgeliefert und im Format
<User bzw Gruppenname>.<FQDN von Gitlab Pages>/<Repositoryname>

Beispiel:

https://admins.gitlab.example.de/lieblings-playbooks

Autor
Kategorien Gitlab, Linux

PRTG Map