CloudflareでLets Encryptの更新エラーに対応する
公開日: 2020.11.16
Cloudflareを使っていると、サーバー側のLets Encrypt証明書の更新時にエラーになることがあります。このエラーがなぜ起こるのかの原因と対策をまとめました。
Lets Encryptの更新エラーの原因
Cloudflareで「常に HTTPS を使用」がオンになっている
Let's Encryptの証明書更新は、「HTTP」でサーバーの特定のファイルにアクセスすることで、サーバーの認証をしています。そのため、Cloudflareの「常に HTTPS を使用」機能がオンになっていると、Let's Encryptの認証サーバーが「HTTP」でアクセスした際に「HTTP”S”」にリダイレクトされてしまい、認証エラーになります。
サーバー側で.well-knownディレクトリがリダイレクトされている
「常に HTTPS を使用」と同じ原因ですが、.well-knownディレクトリがサーバー側でHTTPSにリダイレクトする設定になっていると、リダイレクトループになります。
また、SPAサイトなどで「全てのリクエストをindex.htmlにリダイレクトする」という設定が入っていることでも起こりえるので注意しましょう。
対策
Cloudflareのオリジンサーバー向け証明書を使う
Cloudflareは、オリジンサーバーに向けてクライアント証明書を発行しています。これはCloudflareとオリジンサーバーの間でだけしか使えない証明書ですが、最大で15年間有効です。
クライアント証明書をオリジンサーバーにインストールして使う場合は、CloudflareのSSL設定を「フル」にする必要があります。この設定だと、Page Ruleも使わず、「常に HTTPS を使用」をオンにしたまま利用できます。
Cloudflareで完結させるなら、これが一番簡単で確実な方法です。
HTTPSリダイレクトの対策
CloudflareのHTTPSリダイレクトを回避してLet's Encryptの証明書を更新するには、
- 更新時だけプロキシを切る
- Page Rulesで「常に HTTPS を使用」を制御する
- 「常に HTTPS を使用」を使わないでサーバーで対処する
の三つがあります。
一番簡単なのは、更新時だけプロキシを切ることですが、3ヶ月に一回作業があるため手間です。
Page Rulesを使う際は、Let's Encryptがアクセスする「.well-known」ディレクトリだけHTTPSがされないように設定します。ただし、設定が複雑になりがちで除外設定が出来ないので、あまりオススメできません。
ベストなのは「常に HTTPS を使用」を使わないでサーバーで対処する方法です。Cloudflareでは、「サーバー側で設定しないで全てCloudflareで対処せよ」というサポート情報になっていますが、自分でサーバーの設定ができる場合は良いですが、サーバー側が勝手にやる場合なども考えると、手間もなく複雑な設定もないためサーバー側で制御した方が安心です。
最近は、ホスティングサーバー側でも「常にHTTPS化する」という設定があり、サーバー側の設定ではLet's EncryptのSSLを使っている場合は、「.well-known」ディレクトリだけはスルーするようになっているので、そちらを使いましょう。
サーバーのリダイレクト設定を見直す
ここは単純で、ApacheやNginx、サーバー側のリダイレクト設定などを見直しましょう。基本的には、.well-knownディレクトリの転送設定を除外してHTTPでアクセスできるようにすれば解決するはずです。
また、他の「一括ルーティング系」の設定に「.well-known」ディレクトリが含まれてないかもしっかっりチェックしましょう。
CloudflareでLets Encryptの更新エラーに対応する方法を見てきました。
Cloudflareを使った常時SSL化は非常に便利なのですが、意外とこうした落とし穴があるので慎重に設定するようにしましょう。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
CDNの新着記事
- CDN無料で使えるCloudflare Zero Trustでノープログラムでアクセス制限を実装する 2022.4.27
- CDNエッジが大事!HTTP3.0時代のCDNの活用方法 2020.11.9
- CDNCloudflareのキャッシュを操作する方法 2020.9.21
- CDNCloudflareのキャッシュについて理解する 2020.9.17
- CDNCloudflareで静的サイトをキャッシュする時のベストプラクティス 2020.9.2
- CDNCloudflareを使ってwwwあり・なしURLを正規化する方法 2020.8.25
- CDNCloudflare Registrarで登録できるドメイン一覧と更新料金 2020.5.25
- CDNSSLの使えないサーバーでHTTPS配信をする裏技 2020.1.20