Let's Encryptで証明書を取ってみた(DockerのNginXコンテナ(Alpine)から)

 タイトルの通り、Let's Encryptで証明書を取ってみた。DockerのNginXコンテナ(Alpine)から。メモ。ちなみにHyper.shでコンテナのホスティングは行っている。なのでコンテナを動かすコマンド体系はHyper.sh準拠。ほぼDockerコマンドのまんま。

 まずコンテナを用意。
hyper run -d --name foo -p 80:80 -p 443:443 nginx:alpine


 IPをつける。DNS設定はしてあるものとする。
hyper fip attach xxx.xxx.xxx.xxx foo


 NginXコンテナが動いていて、そこへDNS設定してあるIPをつけたのだからアクセスできるはず。URLを入れてアクセスできるか確認しておく。



 コンテナへ入る。
hyper exec -it foo /bin/sh


 認証を実行してくれるライブラリを入れる。
apk update

apk add certbot


 下記でヘルプが表示される。
certbot -h


 すでにこのコンテナではNginXが動いている。デフォルトの設定で。だからcertbotには、NginXを使った認証コマンドを実行してもらう。
certbot certonly --webroot -w /usr/share/nginx/html -d hmatoba.net

これでインストラクションに従って入力していくだけ。成功すれば発行されたというメッセージとともにファイルが出力される。


 自動化のために、インストラクションで進める形はやめて、オプションを与えていかなければならない。しかしまあ証明書は取れた。めでたしめでたし。
comment: 0