Cloudflare DNSで、StripeのDNS検証が通らなくなった現象に対処する
Amazon Route53からCloudflareにDNSを切り替えたところ、Stripeのダッシュボードでエラーメッセージが表示された。独自ドメインのメール送信ができなくなったため、DNSレコードの不一致を確認する必要があった。Stripeのダッシュボードで失敗したレコードを確認し、nslookupコマンドで詳細を調べるとTXTレコードの1つが問題だった。whatsmydns.netでも同様の確認ができる。Cloudflareで変更を反映するまで時間がかかるため、値が変わったかどうかを確認してから再試行する。成功すればカスタムドメインからの送信が再開される。DNSのデバッグ方法はアプリケーションコードと同様に重要である。なぜレコードが不一致になったのかや、Route53では問題が起きなかった理由はわからない。
目次
DNSをAmazon Route53からCloudflareに切り替えたのですが、ある日Stripeのダッシュボードにエラーメッセージが表示されました。
DNSレコードが一致しないため、Stripeから送信するメールに独自ドメインが使えなくなっていた様子でした。
どのレコードがfailしているかチェックする
[DNSレコードを更新]から状況を確認しましょう。
どのレコードが失敗しているかも、Stripeのダッシュボード上で確認できました。
TXTレコードの1つがうまくいっていない様子です。
nslookupでFailしているレコードの設定を確認する
問題のレコードがわかったので、nslookup
で値を見てみましょう。
% nslookup -type=TXT -timeout=5 wp-kyoto.net
Server: 123.456.789.1
Address: 123.456.789.1#53
Non-authoritative answer:
wp-kyoto.net text = "v=spf1 include:amazonses.com ~all"
wp-kyoto.net text = "stripe-verification=123456789
whatmydns.netでもいける
レコードの確認は、ブラウザ上からでも可能です。この場合は、https://www.whatsmydns.netを使いました。
DNSレコードを更新様子見する
問題のあるレコードがわかれば、Stripeダッシュボードで訂正すべき値を確認してDNSをこうしんするだけです。Cloudflareダッシュボードでの変更が反映されるまで少し時間がかかりますので、nslookupで値が変わったかを確認してから検証をリトライします。
成功すれば、カスタムドメインからの送信が再開されます。
終わりに
DNSについても、アプリケーションコードなどと同様「どうデバッグすれば良いか」がわかれば案外なんとかなる・・・のかもしれません。なんでレコードが不一致になったのかや、Amazon Route53では起きなかった理由とかは不明なままなので、その辺りも調べることができれば続報として書くようにします。