新人社内SEのメモ書き

琵琶湖生まれ琵琶湖育ち。京都の産業用機器メーカの社内SE。自身の体験した事や勉強したことなど記事にしてます。自作PCとドライブが大好き。

[GitLab]HTTPS(SSL/TLS)にする方法

仕事で、オンプレGitLabを運用していましたが、HTTPS化した方がいいねってことになって、ワイルドカード証明書HTTPS化したので復習もかねてアウトプットします

目標

CentOS7上で運用しているGitLabをHTTPS(SSL/TLS)で通信できるようにする

構築環境

ファイル名 形式(エンコーディング) 説明
ca.crt Base64(.pem) 中間CA証明書
certs.crt Base64 GitLabサーバ証明書
certs.key Base64 GitLabサーバのRSA秘密鍵パスフェーズなし

手順

  1. SSL/TLS証明書の配置
$ mkdir /etc/gitlab/ssl/
$ cp ./certs.crt /etc/gitlab/ssl/gitlab.example.co.jp.crt
$ cat ./ca.crt >> /etc/gitlab/ssl/gitlab.example.co.jp.crt
$ cp ./certs.key /etc/gitlab/ssl/gitlab.example.co.jp.key
$ cd /etc/gitlab/ssl/
$ chown root gitlab.example.co.jp.crt
$ chown root gitlab.example.co.jp.key
$ chmod 404 gitlab.example.co.jp.crt
$ chmod 400 gitlab.example.co.jp.key
  1. /etc/gitlab/gitlab.rbを編集 10行目あたり
## GitLab URL
external_url 'http://localhost'

↓

external_url 'https://gitlab.example.co.jp'

1000行目あたり
NGINXのセクション内のコメントアウトを解除します。

################################################################################
## GitLab NGINX
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html
################################################################################
# nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"
# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"

↓

nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"
  1. GitLabの再構成および再起動
$ gitlab-ctl reconfigure
$ gitlab-ctl restart

/var/log/gitlab/nginx/error.logになにもでてなければいけてるはず