元記事
https://finnian.io/blog/ssl-with-docker-swarm-lets-encrypt-and-nginx/
NginxのSSLを設定するのに、いちいちconfigファイルを変更するのがややこしいので、Dockerを使って簡単に証明書を取得する
location ^~ /.well-known/acme-challenge/ {
いちいちこういうふうにletsencryptのための設定を加味する必要はないし、apt-getでソフトを取得する必要はない(Dockerさえあれば)
手順
- Dockerをインストール
- Docker runで証明書を取得
- nginxに証明書の場所を追記
- 完了
超簡単です。
手順2
この下記コマンドを実行し、証明書を取得する
docker run -d \
--name nginx-auto-ssl \
--restart on-failure \
-p 80:80 \
-p 443:443 \
-e ALLOWED_DOMAINS=example.com \
-e SITES=‘example.com=111.11.11.111:443’ \
valian/docker-nginx-auto-ssl
111.11.11.111 には、vpsの実ipアドレスを記載してください。
手順3
手順2で作成した証明書と、鍵が
/etc/letsencrypt/live/example.com/
ここに入っているはずですので、確認してください。
あれば、nginxに証明書と鍵の場所を追記し、sslの他の設定をして完了です。
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
このやり方のなにが良いか
このやり方で一番良かったことは、Docker + nginx でWebサーバーを動かしていた場合です。
nginx on dockerの環境の場合、letsencryptを使ってsslを取得するのに、地獄の苦しみがあります。
それがなくなったことは、非常に嬉しいです。
ひたすら元記事に感謝です。