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の証明書を設定する方法が書いてありますが、

https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/amazon-lightsail-using-lets-encrypt-certificates-with-wordpress

1回目のWebサイトではこれで良かったのですが、今回はこれどおり実行してもうまくいきませんでした。

前回と同じように、

sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonlyCode 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」をプルダウンから選びます。

Route 53のレコードテスト画面

これで「レスポンスを取得する」ボタンをクリックすると、「DNS レスポンスコード」の欄に「存在しないドメイン」として返ってきました。_acme-challengeを付けるとドメインが正しく振り分けられないようですね。

解決法

Amazon Route 53のほうで、「レコードを作成」を行い、

レコード名:_acme-challenge.$DOMAIN

タイプ:TXT

値:Let’s Encryptで証明書発行時に作られたテキストのトークン

を入力したら解決できました。

Categories:

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です