Cloudflareにドメインが移管されていることを前提に進めます。
プラグインをインストールする前に、cryptography
が最新版でなければ実行時にエラーが出るので、確認してアップグレードしてください。
# sudo pip list --outdated | grep 'cryptography'
# sudo pip install cryptography --upgrade #最新版でなければアップグレード
certbot
をインストールします。
# cd /usr/local #インストール先のディレクトリを作成
# sudo git clone https://github.com/certbot/certbot.git
必要なプラグインをインストールした後、設定ファイルを作成していきます。
/nginxの場合(絶対に必要なわけではない)/
# cd /usr/local/certbot/certbot-nginx
# sudo python setup.py install
/apacheの場合(絶対に必要なわけではない)/
# cd /usr/local/certbot/certbot-apache
# sudo python setup.py install
/以下共通/
# cd /usr/local/certbot/certbot-dns-cloudflare
# sudo python setup.py install
# certbot plugins #確認
# sudo apt list "python3-pip*" --installed
# sudo apt install python3-pip #なければインストール
# sudo pip3 install certbot-dns-cloudflare #TXTレコードの自動作成&削除プラグイン
# sudo vim /etc/letsencrypt/cloudflare.ini #設定ファイルを作成
dns_cloudflare_email = <Cloudflareに登録しているメールアドレス>
dns_cloudflare_api_key = <Global API Key>
# sudo chmod 600 /etc/letsencrypt/cloudflare.ini #パーミッションを変更
証明書を発行します。
Congratulations!の表示が出れば成功です。
# vim /etc/letsencrypt/cli.ini #コマンドを短くするための設定ファイル
dns-cloudflare-credentials = /etc/letsencrypt/cloudflare.ini
server = https://acme-v02.api.letsencrypt.org/directory
# sudo certbot certonly -d *.<ドメイン名> -m <メールアドレス> --dns-cloudflare --dns-cloudflare-propagation-seconds 30 --agree-tos
# certbot renew --agree-tos #更新
こちらからCloudflareのログを見ると、TXTレコードが自動作成された後、削除されているのがわかります。
とても簡単にワイルドカード証明書が発行できました。