概要
acme.shを使うとLet's Encryptで簡単に証明書が取得できる。今回はローカル環境で証明書を発行してみる。
インストール
emailの部分は適宜自分のものに変更する。
curl https://get.acme.sh | sh -s email=my@example.com
source ~/.zshrc
アカウント発行
acme.sh --register-account -m my@example.com
証明書発行
ngrokのUIでドメインの設定を行う
ngrokで該当ドメインにきたトラフィックをローカルのマシンにトンネルする設定を作る。左のメニューのDomainsから新規ドメインを追加する。
下記のような設定になるようにする。
DNSのCNAMEを設定
ngrokで払い出された一時ドメイン(2abdgylzz.cname.jp.ngrok.io)を使っているDNSサーバでレコードを作成してCNAMEに割り当てる。
Route53であれば下記のようになる。
ngrokでポートフォワードを行う。
ngrokコマンドが入っていなければbrew install ngrok
や、yay ngrok
などとして使っているOSのパッケージマネジャを使ってインストールしておく。
次にngrokのトンネルを開始する。
ngrok http --region=jp --hostname=ドメイン名 8081
ウェブサーバ
Let's encryptが通信してくるウェブサーバを起動する。
docker run -it \
--rm \
-d \
-p 8081:80 \
--name web \
-v ~/適当なディレクトリ:/usr/share/nginx/html \
nginx
acme.shで証明書発行
acme.sh --issue -d ドメイン名 -w ~/適当なディレクトリ
~/.acme.sh/ドメイン名
に証明書が作成される。