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”を編集します。
環境タブで”+”を押して、以下二つの変数と値を追加します。
- GITLAB_HTTPS: true
- NGINX_HSTS_MAXAGE: 31536000
続いて、ポート設定で、80番ポートを443に変更します。
ここからは、DSMにSSHログインして作業します。
GitLabコンテナを起動します。
# docker start synology_gitlab
GitLabへHTTPSでアクセスして、アドレスバーに鍵マークがついていれば、HTTPSアクセス設定完了です。
Synology NAS上のGitLabの通信をHTTPS化する手順まとめ
今回は、Synology NAS上のGitLabの通信をHTTPS化する手順を説明しました。
ただ、このままだと証明書が更新されるたびに、GitLabの証明書を手動で更新する必要があるのが、非常にめんどくさいです。
次回は、GitLabの証明書を定期的に更新するスクリプトを作成してみます。
コメント