背景
特定場所からのみ接続が許可されている開発サーバーに対して Let's Encrypt による証明書の発行を行いたい。
発行・更新には DNS-01 というDNSレコードにトークンを埋め込むことで発行者側に正しく設定できていることを伝える方法があるのでこれを使う。
大抵調べても詳細を忘れるのでメモ。
コマンド
ドメインが www.example.com
の場合。
これで対話式の手作業でDNSの更新・新規登録作業が行える。
sudo certbot certonly --manual -d www.example.com --preferred-challenges dns
証明書を更新した後は、nginx/apache などの再起動をお忘れなく。
補足
renew
コマンドで(自動化した)証明書の更新を行う場合、DNSレコードの値を設定・削除できる必要がある。
この場合、 --manual-auth-hook
で指定したスクリプトで DNS に値を設定し、--manual-cleanup-hook
で指定したスクリプトで不要なレコードを削除する。