GitLab Mattermost https self signed Zertifikate

Installiert ist Debian GNU/Linux 8 und GitLab CE 8.5.8 als Omnibus package. GitLab soll per https abgesichert werden und bei der Nutzung von GitLab Mattermost sich per Single Sign On an GitLab authentifizieren.

/etc/hosts Einträge.

:~# vim /etc/hosts
192.168.101.241 gitlab.debtest.localhorst.local mattermost.debtest.localhorst.local

GitLab erwartet per default die Zertifikate im Verzeichnis /etc/gitlab/ssl  <domainname>.crt  <domainname>.key

:~# mkdir -p /etc/gitlab/ssl/
:~# cd /etc/gitlab/ssl/
:~# openssl genrsa -out gitlab.debtest.localhorst.local 2048
:~# openssl req -new -key gitlab.debtest.localhorst.local.key -out gitlab.debtest.localhorst.local.csr
:~# openssl x509 -req -days 365 -in gitlab.debtest.localhorst.local.csr -signkey gitlab.debtest.localhorst.local.key -out gitlab.debtest.localhorst.local.crt
:~# chmod 640 gitlab.debtest.localhorst.local.key

:~# openssl genrsa -out mattermost.debtest.localhorst.local 2048
:~# openssl req -new -key mattermost.debtest.localhorst.local.key -out mattermost.debtest.localhorst.local.csr
:~# openssl x509 -req -days 365 -in mattermost.debtest.localhorst.local.csr -signkey mattermost.debtest.localhorst.local.key -out mattermost.debtest.localhorst.local.crt
:~# chmod 640 mattermost.debtest.localhorst.local.key

Die self signed Zertifikate müssen der CA-Zertifikate des Servers hinzugefügt werden.

:~# cd /etc/gitlab/ssl/
:~# cp gitlab.debtest.localhorst.local.crt mattermost.debtest.localhorst.local.crt /usr/share/ca-certificates
:~# dpkg-reconfigure ca-certificates

Im weiteren Abfragekontext.

    ---¦ ca-certificates-Konfiguration +---

  ¦ Neuen Zertifikaten von Zertifizierungsstellen vertrauen?  

  ¦        Fragen 

  ¦    Zu aktivierende Zertifikate: 

  ¦    [ ] gitlab.debtest.localhorst.local.crt  
  ¦    [ ] mattermost.debtest.localhorst.local.crt

Die beiden self signed Zertifikate werden gefunden, entsprechend markiert und aktualisiert.

  ¦    [*] gitlab.debtest.localhorst.local.crt
  ¦    [*] mattermost.debtest.localhorst.local.crt

Trigger für ca-certificates (20141019+deb8u1) werden verarbeitet ...
Updating certificates in /etc/ssl/certs... 2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.

GitLab und GitLab Mattermost Konfiguration, nur das wichtigste.

:~# vim /etc/gitlab/gitlab.rb

external_url 'https://gitlab.debtest.localhorst.local'
nginx['redirect_http_to_https'] = true
mattermost_external_url 'https://mattermost.debtest.localhorst.local'
mattermost['service_use_ssl'] = true
mattermost_nginx['redirect_http_to_https'] = true

Die GitLab Applikation zwei mal generieren lassen. Beim zweiten Lauf fällt die „Mattermost Applikation Authentifizierung“ auf. Dies ist bei einer erneuten Konfigurationsänderung evtl. zurück zu http wichtig.

:~# gitlab-ctl reconfigure
[...]
:~# gitlab-ctl reconfigure
[...]
"GitLabSettings": {
    "Enable": false,
    "Secret": "",
    "Id": "",
    "Enable": true,
    "Secret": "c45f116794d37542e2ea23396597766014d9cb920c1b040b3f9d91049fac194a",
    "Id": "0ca6a6c610e0341c0e83705e042a16c164b1de1fa7d295ddb68f1dae81fa021a",
    "Scope": "",
    "AuthEndpoint": "",
    "TokenEndpoint": "",
    "UserApiEndpoint": ""
    "AuthEndpoint": "https://gitlab.debtest.localhorst.local/oauth/authorize",
    "TokenEndpoint": "https://gitlab.debtest.localhorst.local/oauth/token",
    "UserApiEndpoint": "https://gitlab.debtest.localhorst.local/api/v3/user"

Der korrespondiernde Eintrag im GitLab Webinterface. Admin Area -> Applications -> unter „System OAuth applications“ Klick auf den Name „GitLab Mattermost“.

sreenshot gitlab application
sreenshot gitlab application

Die Token/Api urls müssen entsprechend passend konfiguriert sein. http/https diese werden unter Umständen im Webinterface, bei einer Konfigurationsänderung nicht automatisch gewechselt. So muß z.b. bei einer späteren Umstellung von http nach https das ganze per Hand erledigt werden. Im Webinterface die http Callback urls per Edit auf https umstellen und in der GitLab Mattermost Konfiguration ebenfalls die urls auf https ändern.

:~# vim /etc/gitlab/gitlab.rb

mattermost['gitlab_enable'] = true
mattermost['gitlab_secret'] = "c45f116794d37542e2ea23396597766014d9cb920c1b040b3f9d91049fac194a"
mattermost['gitlab_id'] = "0ca6a6c610e0341c0e83705e042a16c164b1de1fa7d295ddb68f1dae81fa021a"
mattermost['gitlab_scope'] = ""
mattermost['gitlab_auth_endpoint'] = "https://gitlab.debtest.localhorst.local/oauth/authorize"
mattermost['gitlab_token_endpoint'] = "https://gitlab.debtest.localhorst.local/oauth/token"
mattermost['gitlab_user_api_endpoint'] = "https://gitlab.debtest.localhorst.local/api/v3/user"

:~# gitlab-ctl reconfigure
[...]