🍄
dokkuでのSSL証明書の設定方法
dokkuのSSL設定メモです。
Let's Encrypt Plugin
- 一番簡単
- 複数ドメインに対応できる
- ポート設定自動
- アプリ毎に毎回enableする必要がある
インストール
sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
使い方
dokku letsencrypt:enable <app>
dokku letsencrypt:auto-renew
domain設定してあるすべてを内包した証明書が検証されて出る。
WildCardSSLを使う
- 一括で更新できる(が、cron仕込みなど必要)
- ポート設定必要
- DNS認証が必要なためちょっとめんどくさい
インストール
- DNSを向けておく
- DNS認証が必要なので、cloudflare/route53などのキーを事前取得しておく
- certbot/legoなどをインストールして無料のワイルドカード証明書を発行するのが便利です(別に有償のものでも構わないが)
sudo apt install lego
例
lego \
--email "hohohoho@hohoho" \
--domains "dokku.hohoho" \
--domains "*.dokku.hohoho" \
--dns route53
-a run
以下のようにSSL設定を追加
/etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/lego/certificates/dokku.hohoho.crt;
ssl_certificate_key /etc/lego/certificates/dokku.hohoho.key;
....
使いかた
アプリ設定(5000で公開されている場合)
dokku ports:add myapp http:443:5000
注意: Let's Encrypt Plugingではポート設定はhttps:443:5000
になっている。httpsで設定すると(dokku certsで)証明書がセットされていないエラーが出る。
更新
例
lego \
--domains "dokku.hohoho" \
--domains "*.dokku.hohoho" \
--dns route53
-a renew
Discussion