Edited at

Dockerを使ってLet's Encrypt で Nginx にSSLを簡単に設定

More than 1 year has passed since last update.

元記事

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さえあれば)


手順


  1. Dockerをインストール

  2. Docker runで証明書を取得

  3. nginxに証明書の場所を追記

  4. 完了

超簡単です。


手順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を取得するのに、地獄の苦しみがあります。

それがなくなったことは、非常に嬉しいです。

ひたすら元記事に感謝です。