Let's Encryptで証明書を取ってみた(DockerのNginXコンテナ(Alpine)から)
2017.08.24
タイトルの通り、Let's Encryptで証明書を取ってみた。DockerのNginXコンテナ(Alpine)から。メモ。ちなみにHyper.shでコンテナのホスティングは行っている。なのでコンテナを動かすコマンド体系はHyper.sh準拠。ほぼDockerコマンドのまんま。
まずコンテナを用意。
IPをつける。DNS設定はしてあるものとする。
NginXコンテナが動いていて、そこへDNS設定してあるIPをつけたのだからアクセスできるはず。URLを入れてアクセスできるか確認しておく。
コンテナへ入る。
認証を実行してくれるライブラリを入れる。
下記でヘルプが表示される。
すでにこのコンテナではNginXが動いている。デフォルトの設定で。だからcertbotには、NginXを使った認証コマンドを実行してもらう。
これでインストラクションに従って入力していくだけ。成功すれば発行されたというメッセージとともにファイルが出力される。
自動化のために、インストラクションで進める形はやめて、オプションを与えていかなければならない。しかしまあ証明書は取れた。めでたしめでたし。
まずコンテナを用意。
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