2021年4月16日金曜日

lego というツールを使うと dns challenge でも Let'sEncrypt の証明書が自動で取得できる

lego というツールを使うと dns challenge でも Let'sEncrypt の証明書が自動で取得できる

概要

Let’sEncrypt で dns challenge を使った場合 TXT レコードの登録が必要になります
DNS サービスに API などがある場合は prehook や posthook を使って自動化することができます
自分で作るのが面倒な場合は golang 製の lego というツールを使うと楽に dns challenge で証明書を取得できることがあります

環境

  • docker 19.03.6
  • lego 4.3.1

コマンド例

  • mkdir lego
docker run --rm \
-e NIFCLOUD_ACCESS_KEY_ID=xxxx \
-e NIFCLOUD_SECRET_ACCESS_KEY=xxxx \
-v $(pwd)/lego:/lego goacme/lego \
--path /lego \
--email your-name@mail.domain \
--dns nifcloud \
--domains *.my-domain.example.com \
--accept-tos \
run

--email, --domains は必須のオプションになります
--accept-tos で確認の入力を省略することができます
path で証明書が保存されるパスを指定できるのでそのパスをホスト側のディレクトリでバインドしてあげましょう
あとはプロバイダに応じた設定を行います

提供されている Provider

かなりたくさんあります
https://github.com/go-acme/lego/tree/master/providers/dns

引数の --dns にプロバイダを指定することができます
route53 や clouddns などのメジャーな DNS サービスがある他さまざまな DNS サービスが対応しているようです
プロバイダによって設定するべき環境変数がことなるので詳細は

  • docker run --rm goacme/lego dnshelp -c route53

などで確認することができます

0 件のコメント:

コメントを投稿