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“.
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 [...]