====== knot DNSを利用しての証明書取得 ====== * インストール等は完了しているものとします * KnotDNSにて DNS01認証での証明書取得を行います * 取得後の配置は手動で行う前提です ===== knot DNSの設定 ===== * [[serverapps:dns:knotdns:knotdnsddns|APIを利用してDNSにchallengeを登録するための設定]] ===== acme.sh側の操作 ===== ※ 環境は FreeBSD 14.3p3 を使用しています dnsapiの用意((pkgでインストールしましたがコピーされていませんでした)) $ mkdir .acme.sh/dnsapi/ $ cp /usr/local/share/examples/acme.sh/dnsapi/dns_knot.sh .acme.sh/dnsapi/ knsupdate の用意((KnotDNSの更新に使用しています))((knotDNSのある環境からコピーしても動くかもしれませんが、筆者はpkgで入れてしまいました)) $ sudo pkg install knot3 acme.shがDNSサーバーとTSIGキーを利用できるようにします((KNOT_SERVERおよび設定KNOT_KEYは ~/.acme.sh/account.conf に保存され、必要に応じて再利用されます。)) export KNOT_SERVER='dns.example.com' export KNOT_KEY='hmac-sha512:acme_key:riHDKb3AMPW8RCD38AbPs+riHDKb3AMPW8RCD38AbP/riHDKb3AMPW8RCD38AbP/riHDKb3AMPW8RCD38AbP/Q==' github上のドキュメントでは 以下の様にkeymgrで作成されたfileを指定すればOKとなっていますが、筆者の環境では**動作しません**でした((2025.04.22 FreeBSD 14.3p3)) keymgr tsig generate -t acme_key hmac-sha512 > /etc/knot/acme.key export KNOT_KEY='/etc/knot/acme.key' 証明書を発行 ./acme.sh --issue --dns dns_knot -d example.com -d *.example.com ./acme.sh --issue --dns dns_knot -d example.com --server letsencrypt_test 発行時中の待機時間を延ばすためには --dnssleep 300 のようにオプションを追加する(指定は秒) ====== 参考 ====== * [[https://github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_knot|Use Knot (knsupdate) DNS API to automatically issue cert]]