Conoha × Let’s encryptにてワイルドカード証明書を自動取得する

Let’s encryptではワイルドカード証明書を取得できるようになっているが、ワイルドカード証明書の場合にはDNSでの認証が必須となっている。

3ヶ月ごとに手動で更新+DNSに認証用のレコード追加は手間になるのでこれを今回自動化する。

DNSのレコード追加は使用しているDNSサーバ次第であるが、ConohaではDNS用のAPIがあるためこちらを利用してスクリプトを作成する。作成スクリプトは認証レコード追加用と削除用の2種類。

それぞれのスクリプトcertbot実行時に—manual-auth-hook及び—manual-cleanup-hookのオプションで指定することで実行できる。なお、スクリプト内では認証用のトークンは$CERTBOT_VALIDATIONにて取得できる。

作成したスクリプト github.com

なお、スクリプトを指定せずにcertbot renewすると The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',). Skipping. といったエラーが出る。