SSLのカスタム証明書
docker-compose経由でRetoolをデプロイするときに、すぐにSSLを取得できるhttps-portal
サービスがdocker-compose.yaml
ファイルに含まれています。この設定により、LetsEncryptを使用して、自動的に証明書をプロビジョニングします。VPC上にRetoolをデプロイする場合、LetsEncryptは証明書のプロビジョニングに必要なチャレンジを実行できません。この場合、手動で証明書を追加する必要があります。
https-portal
の変更
https-portal
の変更docker-compose.yaml
ファイルに移動して、https-portal
サービスを次に置き換えます。
https-portal:
image: nginx:latest
ports:
- '80:80'
- '443:443'
command: [nginx-debug, '-g', 'daemon off;'] # エラーログの取得はコンテナで行うとよい
volumes:
- ./nginx:/etc/nginx/conf.d
- ./certs:/etc/nginx/certs
links:
- api
depends_on:
- api
networks:
- frontend-network
証明書のマウント
前のステップで、nginxが証明書を検索する2つのDockerボリュームを作成しました。では、これらのボリュームが指すディレクトリーを作成しましょう。
retool-onpremise
ディレクトリー内で、次の操作を行います。
certs
ディレクトリーを作成します(すでに作成されている場合があります)。.crt
ファイルおよび.key
ファイルをcerts
ディレクトリーに移動します。
nginxの構成
nginxの構成には.conf
ファイルが必要です。
nginx
ディレクトリーを作成します(すでに作成されている場合があります)。nginx
ディレクトリー内で、FILENAME.conf
という名前のファイルを作成します(末尾が.conf
の名前にすることができます)。FILENAME.conf
に次を追加します。
server {
listen 80;
server_name retool.yourcompany.dev; # <- 自分のサブドメインに変更
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name retool.yourcompany.dev; # <- これを上記のserver_nameと一致するように変更
ssl_certificate /etc/nginx/certs/hatch.crt; # <- これを自分の.crtファイル名に変更
ssl_certificate_key /etc/nginx/certs/hatch.key; # <- これを自分の.keyファイル名に変更
location / {
proxy_pass http://api:3000;
}
}
コンテナーの再起動
sudo docker-compose up -d
を実行します。
トラブルシューティング
実行すると、コンテナーのログを表示できます。
docker-compose exec https-portal bash
cd /var/log/nginx
cat error.log
Updated almost 4 years ago