2018-03 << 2018-04 >> 2018-05

2018-04-05 (木)

* VALUE-DOMAIN でも ACME のDNS認証を使いたい

Let's Encryptでワイルドカード証明書を作るためにはDNSでの認証が必須なのと,SSL証明書発行のためだけに80番ポートが開いているのも微妙なのでDNS認証にする.

やることは単純で,証明書をリクエストするときに発行されるトークンをTXTレコードにセットするだけ.

特に難しい事ないと思ったのだけど,証明書の更新時にも同じ作業をしなければいけないので,まともなAPIが無いネームサーバーは実質使えない.

その上,VALUE-DOMAINはDNSの更新に数十分かかったりするので,サイトをスクレイピングして操作したとしても無理がありそう.

まともなネームサーバ借りるかと思ったけど,これだけのために移行するのも面倒なので,少し調べてみるといけそうな気がしてきた.

https://github.com/Neilpang/acme.sh/wiki/DNS-alias-mode

を見ると,CNAMEも見てくれるっぽい.

それならと,適当なサブドメインのNSレコードを証明書の発行に使っている環境に向けて,TXTレコードだけ返すDNSサーバを実装して,証明書の更新時に起動するようにした.acme.shを使ってるなら,更新のタイミングでシェルスクリプトを起動してくれるので,そこにコマンド書いておくだけ.53番ポートを一瞬外に対して開ける必要があるのは気にしない.

とりあえず動いたので,しばらく放置しておいて安定してるようだったら置き換えよう.

これはどうでも良いけど,acme.shでワイルドカード証明書作ると証明書のファイル名に,"*"が入ってて一瞬ぎょっとする.