项目作者: binzume

项目描述 :
Temporary DNS server
高级语言: Go
项目地址: git://github.com/binzume/tmpdns.git
创建时间: 2018-04-06T04:10:02Z
项目社区:https://github.com/binzume/tmpdns

开源协议:MIT License

下载


TmpDNS

設定ファイルなどは存在せず,起動時のコマンドライン引数のみで完結する簡易DNSです.

ACMEv2のDNS認証用に作りました.
APIがないネームサーバを使っている場合,_acme-challengeのNSレコードに自身が管理するホストを登録し,そこでDNSサーバを起動することで認証できます.

Usage

  1. go install github.com/binzume/tmpdns@latest
  2. tmpdns -p 53 "hoge.example.com.:txt:hello! world" "fuga.example.com.:a:192.168.0.1"
  3. tmpdns -p 53 -z example.com. "hoge:txt:hello" "fuga:a:192.168.0.1"

(FQDNを示す . の書き忘れに注意)

Docker image

https://hub.docker.com/r/binzume/tmpdns

  1. dokcer pull binzume/tmpdns
  2. 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:

  1. dig fuga.example.com @localhost # 192.168.0.1
  2. dig txt hoge.example.com @localhost # "hello"

Flags

  • -p: port (default:53)
  • -z: zone (default:.)

acme.sh

ACMEv2のDNS認証用のDNSサーバとして利用できます (tmpdnsを実装した当初の目的です)

参考: https://qiita.com/binzume/items/698d12779b8ad5cda423

事前にお使いのDNSサービスに例えば _acme-challenge.example.com のNSレコードを登録してください.

NSレコードが正しく設定されているか確認するために,

  1. docker run --rm -p 53:53/udp binzume/tmpdns "_acme-challenge.exmaple.com.:txt:hello"

としてtmpdnsを起動した状態で,

  1. dig _acme-challenge.exmaple.com txt

でhelloが返ってくれば正しく設定できています.(確認が終わったらtmpdnsは終了してください)

あとはacme.shをインストールし,スクリプトをdnsapi下にコピーして使ってください.

  1. cp dns_tmpdns.sh ~/.acme.sh/dnsapi
  2. acme.sh --issue --dnssleep 10 --dns dns_tmpdns -d example.jp -d *.example.jp

License

MIT License