カテゴリー: 知識

知識に関する内容を記載する
– IT知識
– 哲学
– 読書記録
– お金

  • 【TS】LightsailでSSL/TLS 証明書の取得に失敗する

    【TS】LightsailでSSL/TLS 証明書の取得に失敗する

    about this page

    【WHAT】このページには何が書いてあるのか?

    • LightsailでSSL/TLS証明書の取得に失敗したときの対処法
    • 以下のエラーの原因と、その対処法について
    We encountered an error while configuring the Let's Encrypt SSL/TLS certificate on your instance blog in the ap-northeast-1 Region. Try again later.
    
    1 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). Verify the values for your DNS records are correct. After you change DNS record values, you must wait for the DNS cache to expire before you can try again.

    【WHY】このページの目的

    • 同じエラーに出くわした人の助けになるため。
    • 自分の備忘録としての記録

    【WHO】このページの対象読者

    • LightsailでWordPressを運用しており、SSL/TLS証明書の取得に失敗した人
    • 自分自身

    【HOW】どのようにして記載するのか?

    • 対処方法を端的に説明した後、原因を解説する

    発生した現象について

    エラー画面

    エラー画面
    発生したエラーの内容

    エラー内容

    Amazon LightsailでWordPressのインスタンスを作成し、Route53でドメインを取得後、Lightsailのセットアップ機能でセットアップを行っていたところ、SSL/TLS証明書の取得時に下記のエラーが発生した。

    We encountered an error while configuring the Let's Encrypt SSL/TLS certificate on your instance blog in the ap-northeast-1 Region. Try again later.
    
    1 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). Verify the values for your DNS records are correct. After you change DNS record values, you must wait for the DNS cache to expire before you can try again.

    対応方法

    対応方法は以下の2ステップになります。

    1. インスタンスに IPv6 アドレスをアタッチする。
    2. 対象ドメインのDNSレコードのAAAAレコードにPv6アドレス設定する。

    【手順1】インスタンスにIPv6アドレスをアタッチする

    対象インスタンスをクリックして選択してください。

    1. 対象インスタンスを選択する
    1. 対象インスタンスを選択する

    「ネットワーキング」タブを選択してください。

    2. 「ネットワーキング」タブを選択
    2. 「ネットワーキング」タブを選択

    画面を下にスクロールして、IPv6アドレスを取得してください。

    3. IPv6アドレスを取得する
    3. IPv6アドレスを取得する

    【手順2】対象ドメインのDNSレコードのAAAAレコードにPv6アドレス設定する

    左パネルから「ドメインとDNS」を選択し、対象DNSゾーンの設定画面に遷移してください。

    4. 「ドメインとDNS」を選択し、対象DNSゾーンの設定画面に飛ぶ
    4. 「ドメインとDNS」を選択し、対象DNSゾーンの設定画面に飛ぶ

    「DNSレコード」タブを選択後、「レコードの追加」をクリックし、DNSレコードの追加画面に遷移してください。

    5. レコードの追加画面に遷移
    5. レコードの追加画面に遷移

    プルダウンから「AAAA」レコードを選択し、ドメイン名の箇所に@マークを入力してください

    「解決先」テキストボックスに取得したIPv6アドレスを入力してください。

    6. AAAAレコードの設定
    6. AAAAレコードの設定

    設定が完了したら、Lightsailのコンソールから「WordPressウェブサイトをセットアップする」のガイダンスに従って操作をしてください。

    私のケースでは、これで解決しました。
    もし、上手くいかない場合や、情報が不足している場合、コメント等でフィードバックをいただけると幸いです。

    この記事が誰かの役に立つことを願いします。


    問題の原因

    以下では、「なぜSSL証明書の取得に失敗したのか?」と「なぜ、今回の作業で解決したのか?」の2点について解説していきます。

    なぜSSL証明書の取得に失敗したのか?

    エラー文言の内容を理解する

    まずは、エラー文言の内容を正しく理解するところから始めましょう。

    We encountered an error while configuring the Let's Encrypt SSL/TLS certificate on your instance blog in the ap-northeast-1 Region. Try again later.
    
    1 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). Verify the values for your DNS records are correct. After you change DNS record values, you must wait for the DNS cache to expire before you can try again.

    翻訳すると、以下のような文章になります。

    We encountered an error while configuring the Let's Encrypt SSL/TLS certificate on your instance blog in the ap-northeast-1 Region. Try again later.
    (インスタンス blog に対して、ap-northeast-1 リージョンで Let's Encrypt SSL/TLS 証明書の設定中にエラーが発生しました。後でもう一度試してください。)
    
    1 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). Verify the values for your DNS records are correct. After you change DNS record values, you must wait for the DNS cache to expire before you can try again.
    (1 DNS レコードがインスタンスの IP と一致しません。1 つのドメインに対して IPv6 の一致が見つかりませんでした。DNS レコードの値が正しいことを確認してください。DNS レコードの値を変更した後、DNS キャッシュが期限切れになるまで待ってから、もう一度試す必要があります。)

    要約すると以下のような内容です。

    「IPv6のDNSレコードが正しく設定されていないので、証明書の取得に失敗しているよ」

    なぜ、今回の作業で解決したのか?

    Lightsailで提供されているWordPressの設定ツールは、SSL/TLS証明書を取得する際に、内部的にLet’s Encryptを利用しています。

    Let’s Encryptは、ドメインの所有権を確認するために、DNSレコードをチェックします。
    AWS Lightsailでは、デュアルスタック(IPv4とIPv6の両方)をサポートしており、デフォルトでIPv6アドレスが割り当てられます。

    今回のエラーは、DNSレコード(AAAAレコード)にIPv6アドレスが正しく設定されていなかったため、Let’s Encryptがドメインの所有権を確認できず、証明書の取得に失敗していました。

    AAAAレコードに正しいIPv6アドレスを設定することで、Let’s Encryptがドメインの所有権を確認できるようになり、証明書の取得に成功した。というわけです。

    参考にしたサイト