概要
https-portalは簡単にhttpsサーバーを用意できるツールです。
docker-composeにserviceを定義するだけで、NginxとLet's Encryptを使ったhttpsサーバーを立てることができます。
localhostのhttps化
まずはlocalhostをhttps化してみます。
検証のためにpythonでサーバーを立てます。
docker-compose.yml
version: "3.7"
services:
https:
image: steveltn/https-portal:1
ports:
- "80:80"
- "443:443"
environment:
DOMAINS: localhost -> http://python:8000
STAGE: local
python:
image: python:alpine
command: python -m http.server
working_dir: /
これだけでpythonで立てたサーバーをhttps化できました。
https://localhost
にアクセスすると確認できます。
ただし、自己署名証明書なので警告は出ます。
公開中のwebサイトをhttps化
次に公開中のwebサイトをhttps化してみます。
と言ってもlocalhostをhttps化した時とだいたい同じで、環境変数を少し書き換えるだけです。
なお、Let's Encrypt'sからtest用の証明書を発行するので時間がかかります。
docker-compose.yml
environment:
DOMAINS: YOUR_DOMAIN -> http://python:8000
STAGE: staging
stagingで動作確認が出来たらproductionに変更します。
これでブラウザで警告が表示されなくなり、公開中のサイトをhttps化できました。
注意点
いきなりSTAGEをproductionで動作確認をしていると、Let's Encrypt'sのレート制限に引っかかってしまうことがあるらしいです。