HTTPS とリバースプロキシ
Caddy または Nginx で OpenTickly を HTTPS に対応させます。
コンテナはポート 8080 で HTTP を提供します。OPENTOGGL_PORT を変更しても、ホスト側の公開ポートが変わるだけで HTTPS にはなりません。HTTPS の接続をプロキシで受け、OpenTickly に転送します。
Caddy を使う
- セルフホストの手順に従い、HTTP で開けることを確認します。
- ドメインの DNS をサーバーに向け、80 番と 443 番ポートを開放します。
- 同じホストに Caddy をインストールし、ドメインを置き換えて Caddyfile に記載します。
time.example.com {
reverse_proxy 127.0.0.1:8080
}Caddy を再読み込みすると、証明書が自動で取得・更新されます。Caddy のデータディレクトリは永続化してください。詳しくは Caddy の HTTPS ガイドを参照してください。
Nginx を使う場合
先に証明書を取得し、更新方法も用意します。同じホストに以下の設定を追加し、ドメインと証明書のパスを変更してください。nginx -t で確認してから Nginx を再読み込みします。
server {
listen 80;
server_name time.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name time.example.com;
ssl_certificate /etc/letsencrypt/live/time.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/time.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}詳細は Nginx のドキュメントを参照してください。プロキシはどちらか一方で十分です。OPENTOGGL_PORT を変更した場合は転送先のポートも変更します。この例はホスト上でプロキシを動かす想定です。コンテナ内の 127.0.0.1 は、そのコンテナ自身を指します。8080 番への直接アクセスは制限してください。
仕上げ
https://time.example.comを開き、証明書の警告なしでログインできるか確認します。- インスタンス管理 → 設定 で、サイトURL をその HTTPS アドレスにします。
/apiなどのパスは付けません。 - メールと SSO の設定に進みます。
スマートフォンへの PWA インストールと SSO には HTTPS が必要です。サイト URL の変更だけでは、証明書は発行されません。