Synology NAS上のGitLabの通信をHTTPS化する手順

プログラミング
プログラミング

Synologyは、Let’s EncryptのSSL証明書を、非常に簡単に取得することができます。

ただ、取得した証明書は、Audio StationやVideo StationなどのSynology製アプリケーションにしか適用できません。

そこで今回は、取得したLet’s EncryptのSSL証明書を、DSMのDockerコンテナ上で動いているGitLabに適用する方法を説明します。

事前準備

  • DSM 6.1以上にアップグレード済み
  • GitLabパッケージをインストール済み
  • 有効なSSL証明書がインストール済み
  • DSMにSSHログインできる

手順

ここからの作業は、DSMにSSHログインした状態で実施します。

管理者権限を取得します。

$ sudo su

gitlabコンテナを停止しておきます。

# docker stop synology_gitlab

SSL証明書が格納されている親フォルダへ移動します。

# cd /usr/syno/etc/certificate/_archive/

GitLabで使用するSSL証明書を特定します。

デフォルトの”~~.synology.me”を使う場合、DEFAULTというファイルに記載されている文字列のフォルダになります。

フォルダに格納されているrenew.jsonに、ドメイン名が記載されているので確認します。

# cat DEFAULT
AAAAAA # 例
# cat AAAAAA/renew.json
{
   "account" : "/usr/syno/etc/letsencrypt/account/aaaaaa",
   "domains" : "~~.synology.me",
   "server" : "https://hogehoge.letsencrypt.org/directory",
   "version" : x
}

同階層に、cert.pem, privkey.pemがあり、後ほどこれらを使います。

GitLabコンテナのフォルダへ移動します。

# cd /volume名/docker/gitlab/gitlab

証明書を格納するフォルダを作成し、移動します。

# mkdir certs && cd certs

先ほど確認した証明書をコピーしてきます。

# sudo cp /usr/syno/etc/certificate/_archive/cert.pem ./gitlab.crt
# sudo cp /usr/syno/etc/certificate/_archive/privkey.pem ./gitlab.key

鍵交換用に使用するパラメータファイルを作成します。

# openssl dhparam -out dhparam.pem 4096

ここからは、DSMのGUI上で作業します。

ログインして、Dockerアプリを開いたら、コンテナで”synology_gitlab”を編集します。

ログインして、Dockerアプリを開いたら、コンテナで"synology_gitlab"を編集します。

環境タブで”+”を押して、以下二つの変数と値を追加します。

  • GITLAB_HTTPS: true
  • NGINX_HSTS_MAXAGE: 31536000

続いて、ポート設定で、80番ポートを443に変更します。

ポート設定で、80番ポートを443に変更します。

ここからは、DSMにSSHログインして作業します。

GitLabコンテナを起動します。

# docker start synology_gitlab

GitLabへHTTPSでアクセスして、アドレスバーに鍵マークがついていれば、HTTPSアクセス設定完了です。

Synology NAS上のGitLabの通信をHTTPS化する手順まとめ

今回は、Synology NAS上のGitLabの通信をHTTPS化する手順を説明しました。

ただ、このままだと証明書が更新されるたびに、GitLabの証明書を手動で更新する必要があるのが、非常にめんどくさいです。

次回は、GitLabの証明書を定期的に更新するスクリプトを作成してみます。

参考

Let's Encrypt SSL certificate for GitLab with Docker on Synology — Steemit
source If you use DSM 6.1 on a Synology NAS, then requesting an SSL certificate from Let's Encrypt is very easy.… by ...
GitHub - sameersbn/docker-gitlab: Dockerized GitLab
Dockerized GitLab. Contribute to sameersbn/docker-gitlab development by creating an account on GitHub.

コメント

タイトルとURLをコピーしました