wwwあり・なし統一でLet's Encypt SSLの更新エラーが出る時の対処方法
公開日:2020年9月21日
wwwあり・なし統一した時に、サーバーの設定次第ではLet's Encypt SSLの更新エラーが出ます。この時の対処方法をまとめました。
サイトの正規化で大事なwwwあり・なし統一
サイト運営をする上で、重複ページを避ける意味でもサイトのURL正規化は大事です。中でも、wwwあり・なし統一は、サイトを開設した段階で最初にすべきURL正規化とも言えます。
wwwあり・なし統一の統一は、wwwに寄せるかルートドメインに寄せるかは好みになりますが、通常、ドメインの正規化をした際は、どちらかのドメインに301リダイレクトで正規化することになります。
ドメインの正規化でLet's Encypt SSLの更新エラーが起こる原因
Let's Encyptは、サーバー上で一時的な認証ファイルを生成して、Let's Encyptサーバーがそれにアクセスすることでサーバーの正当性をチェックしています。
wwwあり・なしのどちらかで統一している場合、どちらかのドメインが301リダイレクトになっているため、リダイレクト元のドメインで一時的な認証ファイルを確認できない(リダイレクトされてしまう)ために、Let's Encypt SSLの更新エラーが発生します。
自サーバーで、認証ファイル生成
↓
Let's Encyptに認証依頼
↓
Let's Encyptが認証ファイルがあるか、実際にアクセスしてチェック
↓
301リダイレクトされて認証ファイルが確認不可能(ドメインが変わっているので正当性がない)
↓
Let's Encyptがエラーを返す
Let's Encypt SSLの更新エラーは、内部的にはこのようなことが起こっています。
Let's Encypt SSLの更新エラーの回避方法
認証ファイルディレクトリをリダイレクト除外する
Let's Encypt SSLの更新エラーは、認証ファイルの確認ができないために起こるので、認証ファイルディレクトリだけリダイレクトの対象外にすれば、Let's Encyptの証明書更新が可能になります。
Let's Encyptの認証ファイルは、更新プログラムをサーバーが実行した際に、
.well-known
というディレクトリ下に認証ファイルを生成して、Let's Encyptのサーバーからアクセスしてもらうことで正当性チェックしているので、このディレクトリのみリダイレクトを除外します。
リダイレクトは、ApacheやNginxで設定しているかと思いますので、それぞれ除外設定を入れましょう。
除外設定ができない場合
ブログサービスや静的サイトホスティングサービスは、wwwあり・なしの統一設定時に、Let's Encypt SSLの更新エラーが起こらないようにサービス側が対処してくれるのが基本ですが、中にはドメインの統一に対応していないサービスだったり、リダイレクト設定ができない(提供されていない)サービスもあります。
その場合は、ドメインの登録で使っているDNSサーバー側で対処しましょう。
今回は、wwwありに統一するとして、
- wwwなしはSSLを使わない
- wwwなしにhttpでアクセス
- https + wwwありにリダイレクト
という形にすると、統一元のwwwなしはSSL証明書の更新が不要になるため、Let's Encypt SSLの更新エラーを回避できます。
もし、利用しているDNSが転送機能を持っていない場合は、Cloudflareは無料で転送機能があるのでそちらに乗り換えると良いでしょう。
wwwあり・なし統一でLet's Encypt SSLの更新エラーが出る時の対処方法を見てきました。
知っていればなんてことない部分ですが、意外とハマりポイントでもあるので、ドメインの正規化をしてLet's Encypt SSLの更新エラーに遭遇している場合は、参考にしてみてください。