WordPress on Amazon Lightsail+Route 53+Let’s Encryptを使用
このサイトでは、WordpressがインストールされているAmazon Lightsailのサービスを使用していますが、DNSもAmazon Route 53を使用しています。確かに値段だけだと別のVPSサーバーを借りたり、お名前.comとかでドメイン登録するほうが安く済むこともあるのですが、仕事柄、AWSを使う場面が多いので、プライベートでも色々とAWSのサービスを知っておきたいというのが一番の目的です。
Amazon Route 53でLet’s Encryptの設定を通す
AWSのドキュメントにLightsailでLet’s Encryptの証明書を設定する方法が書いてありますが、
1回目のWebサイトではこれで良かったのですが、今回はこれどおり実行してもうまくいきませんでした。
前回と同じように、
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
Code language: PHP (php)
を実行し、表示されたテキストをAmazon LightsailのDNSのドメインゾーンのTXTに入力したのですが、mxtoolboxのサイトで_acme-challenge.$DOMAIN ($DOMAINはexample.comのようなドメイン)のテキスト表示を確認してみると、
DNS Record Not Found
のエラーが出てしまいます。
$DOMAINだけで問題なくWebサイトは表示できているので、ドメインのDNSはRoute 53でちゃんと設定されていると思うのですが…。
Route 53のレコードのテストを活用
mxtoolboxだけでの調査だとラチが明かなかったので、一旦Route 53の画面に戻ってみて色々と見てみてると、「レコードをテストする」というボタンがあります。これを使ってみました。
レコード名に「_acme-challenge」を入れます。Let’s Encryptで証明書を発行する時に表示される_acme-challenge.$DOMAINの先頭部分です。そしてレコードタイプに「TXT」をプルダウンから選びます。
これで「レスポンスを取得する」ボタンをクリックすると、「DNS レスポンスコード」の欄に「存在しないドメイン」として返ってきました。_acme-challengeを付けるとドメインが正しく振り分けられないようですね。
解決法
Amazon Route 53のほうで、「レコードを作成」を行い、
レコード名:_acme-challenge.$DOMAIN
タイプ:TXT
値:Let’s Encryptで証明書発行時に作られたテキストのトークン
を入力したら解決できました。
No responses yet