
・MyDNSでLet’s Encryptのワイルドカード証明書を自動更新する方法を知りたい。
・具体的な手順を詳しく教えてほしい。
こういった疑問に答えます。
本記事の内容
- MyDNSでLet’s Encryptのワイルドカード証明書を自動更新する方法

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。
こういった私が、解説していきます。
私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。
MyDNSでLet’s Encryptのワイルドカード証明書を自動更新する方法
Let’s Encryptのサーバー証明書の更新時の認証方式に、DNS認証を利用する際に、TXTレコードの更新が必要になりますが、
MyDNSではそのためのAPIが用意されています。

https://github.com/disco-v8/DirectEdit/
手順その①:PHPスクリプトのダウンロード
GitHubの使い方に沿って進めていきます。
まず、必要なファイルをダウンロードします。
ダウンロード
wget 'https://github.com/disco-v8/DirectEdit/archive/master.zip' -O DirectEdit-master.zip
解凍
unzip ./DirectEdit-master.zip
パーミッションの変更
chmod 700 ./*.php
chmod 600 ./*.conf
手順その②:confファイルの編集
vi txtedit.conf
<?php // ------------------------------------------------------------ // // txtedit.conf // // ------------------------------------------------------------ ?> <?php $MYDNSJP_URL = 'https://www.mydns.jp/directedit.html'; $MYDNSJP_MASTERID = 'mydns●●●●●●'; ←MyDNSのマスターID $MYDNSJP_MASTERPWD = 'XXXXXXXXX'; ←MyDNSのパスワード $MYDNSJP_DOMAIN = '○○○○○.mydns.jp'; ←MyDNSのドメイン名 ?>
手順その③:Let's Encrypto(certbot)のサーバー証明書の更新
certbot certonly --manual \ --preferred-challenges=dns \ --manual-auth-hook /ディレクトリ名/DirectEdit-master/txtregist.php \ --manual-cleanup-hook /ディレクトリ名/DirectEdit-master/txtdelete.php \ -d ○○○○○.mydns.jp -d *.○○○○○.mydns.jp \ ←MyDNSのドメイン名、2つ目はワイルドカード指定 --server https://acme-v02.api.letsencrypt.org/directory \ --agree-tos -m ○○○○○@△△△ \ ←メールアドレス
GitHubの使い方には --manual-public-ip-logging-ok のコマンドが書かれていますが、
このオプションは廃止されているみたいで、警告がでるので消しました。
手順その④:cronで自動実行するように設定
certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /ディレクトリ名/DirectEdit-master/txtregist.php --manual-cleanup-hook /ディレクトリ名/DirectEdit-master/txtdelete.php -d ○○○○○.mydns.jp -d *.○○○○○.mydns.jp --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -m ○○○○○@△△△ --keep-until-expiring
--keep-until-expiring を付けておきました。