Ich habe seit einigen Monaten eine bestehende GitLab-Installation und beschloss, dass es an der Zeit war, ein echtes SSL-Zertifikat (nicht selbstsigniert) hinzuzufügen.
Gemäß der Dokumentation ändere ich die folgende Zeile:
external_url 'http://<domain>.com'
Zu:
external_url 'https://<domain>.com'
Und kommentieren Sie die folgenden Zeilen aus:
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] "/etc/gitlab/ssl/gitlab.key"
Und um sicherzugehen, habe ich die Schlüsseldateien noch einmal überprüft:
root@host:/etc/gitlab# cat /etc/gitlab/ssl/gitlab.crt
-----BEGIN CERTIFICATE-----
...
root@host:/etc/gitlab# cat /etc/gitlab/ssl/gitlab.key
-----BEGIN PRIVATE KEY-----
...
Dann habe ich ausgeführt gitlab-ctl reconfigure
und am Ende eine Erfolgsmeldung erhalten. Wenn ich jedoch zur GitLab-URL navigiere, erhalte ich eine ERR_CONNECTION_REFUSED
. Wenn ich alle Zeilen oben auskommentiere und ausführe gitlab-ctl reconfigure
, wird auf HTTP-Port 80 alles wieder normal.
Was könnte dazu führen, dass nginx Verbindungen ablehnt, wenn ich der Konfigurationsdatei zwei Zertifikate zuführe und die URL anpasse? Danke!
Antwort1
Es klingt, als würde GitLab auf 443 nicht zuhören. Die Umleitung auf 80 schickt Sie zu 443, wo Sie Connection Refused erhalten. Die Konfiguration sollte eine listen 443
Zeile enthalten (siehehttp://nginx.org/en/docs/http/configuring_https_servers.html), das den Empfang von SSL-Anfragen ermöglicht.
Beispiel von der Seite:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
...
}