数か月間、いくつかのドメインでLet's Encryptを使用してきましたが、一般的には機能しています。証明書の更新を行っていましたが、ドメインの1つで、次のエラーメッセージが表示されます(challenges[1].error.detail
で返されたJSONオブジェクトに)。
DNSの問題:[somedomain.com]のCAAを検索するとクエリがタイムアウトしました
エラーを調べてみましたが、Googleでさえ結果がゼロでした(この記事の執筆時点)。否定論者の場合:はい、このドメイン(エラーメッセージに表示されているとおり)は有効であり、完全にアクセス可能であり、遠くからpingを実行できます。
しかし、なぜこの状態が発生したのかについては、ここに重要な苦境(手がかり)があります。この特定のドメインを初めて更新しようとしたときに、このドメインの設定をすべてのトラフィックをHTTPSにリダイレクトに設定しました。 LEがHTTPSでサーバーにアクセスしようとして失敗したようです。それ以来、acme-challengeフォルダーのドメインがHTTPSにリダイレクトされないように、サーバー設定を変更しました。問題は、LEが以前のリクエストがリダイレクトされたことを記憶していて、代わりにHTTPURLにアクセスしたくないということのようです。 challenges[1].validationRecord
には2つのエントリがあります。1つはHTTPの[0]に、もう1つはHTTPSの[1]にあります。したがって、LEは、サーバーがHTTPアドレスでもアクセスできることを明確に認識しています。さらに、challenges[1].validationRecord[0].url
で指定されたURLの検証チェックファイル(問題のドメイン上)に問題なくアクセスできます。
私の質問は、すべてのトラフィックをHTTPSにリダイレクトするようにサーバーを設定しているときに、証明書を要求しようとしたことをLEに忘れさせるにはどうすればよいですか?したがって、LEに代わりにHTTP URLを使用させるにはどうすればよいですか?
Let's Encryptは、以前のリダイレクトを追跡しません。検証には、HTTPまたはHTTPSバージョンのいずれかを使用できます。
あなたのエラーは別の問題を浮き彫りにします
DNSの問題:[somedomain.com]のCAAを検索するとクエリがタイムアウトしました
検証システムはドメインのDNSルックアップを完了できませんでした。使用しているDNSプロバイダーに問題があるか、Let'sEncryptサーバーとサーバー間のルートにネットワークの問題がある可能性があります。
これは 同様の問題 であり、公式のLEコミュニティフォーラムで説明されています。
問題はDNルックアップステップにあると思います。 CAAレコードがありません。どういうわけか、ドメインネームサーバーが応答するのに非常に長い時間がかかりました。 Osirisが私に送信した結果の一部を次に示します。彼は、IPの取得は高速であると述べましたが、「最後の1つのステップはかなり遅いことがよくあります」。 CAAチェックステップで失敗する理由は、速度の低下です。
そして
元のエラーとその時代に基づいて、使用しているDNSサーバーまたはLet's Encryptのデータセンターからそれらへのルートに問題がある可能性が非常に高く、タイムアウトが発生しています。
DNS設定を調査し、ルックアップが成功した場合は、しばらくしてから証明書要求の送信を再試行してください。
Acmeクライアントの最新バージョンは通常、タイムアウトしたターゲットIPを表示します。クライアントは、証明書要求ルーチンの間に別のネームサーバーにクエリを発行するようです。これらのサーバーには、マシンのデフォルトDNSサーバーと、使用しているドメインの権威ネームサーバーが含まれますが、これらに限定されません。
他の点では完璧なネットワーク接続を使用しているときに、信頼できるネームサーバーへのルートが会社のファイアウォールでブロックされた状況を見ました。 (私は知っています、奇妙です)。そのため、すべての名前(この特定のドメインを含む)は完全に解決されましたが、acmeクライアントが権限のあるネームサーバーに直接接続しようとすると、プロセスは失敗しました。この問題は、ファイアウォールルールを変更してリクエストを通過させることで解決しました。
したがって、2018年以降の場合、ログを見ると、通常、タイムアウトしたIPアドレスがわかり、acmeクライアントからそのアドレスへの接続を確認します。