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でワイルドカード証明書作ると証明書のファイル名に,"*"が入ってて一瞬ぎょっとする.