設定ファイルなどは存在せず,起動時のコマンドライン引数のみで完結する簡易DNSです.
ACMEv2のDNS認証用に作りました. APIがないネームサーバを使っている場合,_acme-challengeのNSレコードに自身が管理するホストを登録し,そこでDNSサーバを起動することで認証できます.
go install github.com/binzume/tmpdns@latest
tmpdns -p 53 "hoge.example.com.:txt:hello! world" "fuga.example.com.:a:192.168.0.1"
tmpdns -p 53 -z example.com. "hoge:txt:hello" "fuga:a:192.168.0.1"
(FQDNを示す .
の書き忘れに注意)
https://hub.docker.com/r/binzume/tmpdns
dokcer pull binzume/tmpdns
docker run --rm -p 53:53/udp --name tmpdns binzume/tmpdns -z example.com. "hoge:txt:hello" "fuga:a:192.168.0.1"
query sample:
dig fuga.example.com @localhost # 192.168.0.1
dig txt hoge.example.com @localhost # "hello"
- -p: port (default:53)
- -z: zone (default:.)
ACMEv2のDNS認証用のDNSサーバとして利用できます (tmpdnsを実装した当初の目的です)
参考: https://qiita.com/binzume/items/698d12779b8ad5cda423
事前にお使いのDNSサービスに例えば _acme-challenge.example.com
のNSレコードを登録してください.
NSレコードが正しく設定されているか確認するために,
docker run --rm -p 53:53/udp binzume/tmpdns "_acme-challenge.exmaple.com.:txt:hello"
としてtmpdnsを起動した状態で,
dig _acme-challenge.exmaple.com txt
でhelloが返ってくれば正しく設定できています.(確認が終わったらtmpdnsは終了してください)
あとはacme.shをインストールし,スクリプトをdnsapi下にコピーして使ってください.
cp dns_tmpdns.sh ~/.acme.sh/dnsapi
acme.sh --issue --dnssleep 10 --dns dns_tmpdns -d example.jp -d *.example.jp
MIT License