カラフルボックスに入れてある手持ちのWordPressサイトがあります。
カラフルボックスには『ColorfulBox CDN』というCDNサービスがあり、これはカラフルボックス専用にカスタマイズしてあるCloudflareの有料プランもどきなのでいくつか便利な機能もありますが、細かい設定はできないでの(細かい調整ができる私としては)使い勝手が悪く、『ColorfulBox CDN』はやめて普通のCloudflare(無料プラン)に変更しました。
※あくまで私の感想です。一般的にはお手軽にCDNを導入できてカラフルボックス管理画面内でCloudflareの簡単な設定変更・キャッシュ操作ができるので便利かと思います。
しばらくしたらwwwつきサブドメインがAUTOSSLの更新エラーになりました。
.htaccessおよびCloudflareの設定にて、AUTOSSLに関するディレクトリはキャッシュ除外しているにもかかわらずです。
wwwなしのサブドメインはAUTOSSL更新エラーにはなっていません。
wwwつきサブドメインだけがAUTOSSLの更新エラーです。
その時のcPanelの画面は画像キャプチャし忘れましたが、以下はその時送られてきたメールの内容です。
ほにゃららサブドメイン.com: AutoSSL would normally renew this certificate now, but 1 of the website’s secured domains just failed DCV. To provide you with more time to resolve this problem, AutoSSL will defer the renewal until 2024/◯◯/◯◯ at ◯◯:◯◯:◯◯ UTC. After that time, AutoSSL will request a replacement certificate that excludes any domains that fail DCV. At the time of this notice, the certificate will expire in ◯◯ 日、◯◯ 時間、◯◯ 分、◯◯ 秒.
AutoSSL did not renew the certificate for “ほにゃららサブドメイン.com”. You must take action to keep this site secure.
■翻訳■
ほにゃららサブドメイン.com:Autosslは通常この証明書を直ちに更新しますが、Webサイトの保護されたドメインの 1 つが DCV に失敗しました
この問題を解決するためのより多くの時間を提供するために、AutoSSLは2024/◯◯/◯◯/◯◯まで更新を延期します。
その後、AutoSSLはDCVに失敗したドメインを除外する代替証明書を要求します。
この通知の時点で、証明書は◯◯日、◯◯ 時間、◯◯秒で期限切れになります。
Autosslは、「ほにゃららサブドメイン.com」の証明書を更新しませんでした。
このサイトを安全に保つために行動を起こす必要があります。
The “LetsEncrypt” AutoSSL provider could not renew the SSL certificate without a reduction of coverage because of the following problem: ⛔ www.ほにゃららサブドメイン.com (checked on 2024/11/07 at 12:28:54 UTC)
■ここがエラーの内容です■
DNS DCV: No local authority: “www.ほにゃららサブドメイン.com”; HTTP DCV: “ほにゃららサブドメイン.com” does not resolve to any IP addresses on the internet.
■翻訳■
DNS DCV:ローカル権限なし:“WWW.ほにゃららサブドメイン.com“; HTTP DCV:“WWW.ほにゃららサブドメイン.com“は、インターネット上のどの IP アドレスにも解決されません。
For the most current status, navigate to the “SSL/TLS Status” interface. You can also exclude domains from future renewal attempts, which would cease future notifications.
The certificate that is installed on this website contains the following properties:
■翻訳■
最新のステータスを確認するには、「SSL/TLS ステータス」インターフェイスに移動します。今後の更新試行からドメインを除外することもできます。これにより、今後の通知が停止されます。
この Web サイトにインストールされている証明書には、次のプロパティが含まれています。
AutoSSL更新時にwww.ほにゃららサブドメイン.comのIPアドレスを解決できてないみたいですが、コマンドプロンプトにて
nslookup www.ほにゃららサブドメイン.com
を確認するとちゃんとオリジンサーバーに向いています。
Cloudflareの設定 → 概要にて『Cloudflareを一時停止』することで解決できた人もいるようですが、私の場合はそれでは解決できませんでした。
解決策は書けば数行ですが、解決するまでかなりの時間を要しました。。。
■解決策■
①一時的にCloudflareの設定の
- SSL/TLS → エッジ証明書にて、常に HTTPS を使用:OFF
- (ONにしている人は)念のためCaching → 構成にて、Always Online:OFF
にして、念のためCloudflareのキャッシュをパージする。
②cPanelのSSL/TLS Statusにて該当ドメインのAUTOSSLを実行する。
- cPanel → SSL/TSL Statusにて、「AutoSSLを実行する」をクリック
③AUTOSSLの更新が成功したら
- SSL/TLS → エッジ証明書にて、常に HTTPS を使用:ON
- (必要に応じて)Caching → 構成にて、Always Online:ON
に戻します。
■注意■
いちいち
- SSL/TLS → エッジ証明書にて、常に HTTPS を使用:OFF
- (ONにしている人は)念のためCaching → 構成にて、Always Online:OFF
としなくても、
一時的に「Cloudflare を一時停止する」でCloudflare全体を一時的に無効して、更新に失敗したドメインだけcPanelにてAutoSSLを手動実行してサーバー側のSSL証明書を手動で更新して、その後「Cloudflare の一時停止を解除」する
でもOKかと思います。
cPanelのAutoSSL更新エラーを解決できました!
なお、この解決方法はCloudflare等のCDNを使っている場合のみです。
というか、このエラーはCloudflareを使っている場合のみに発生するエラーかと思います。
■参考■※上級者向け
上記のように、cPanelのAutoSSL更新エラーになったらその都度
一時的に「Cloudflare を一時停止する」でCloudflare全体を一時的に無効して、更新に失敗したドメインだけcPanelにてAutoSSLを手動実行してサーバー側のSSL証明書を手動で更新して、その後「Cloudflare の一時停止を解除」する
としなくても、一般的なドメイン(ほにゃらら.comやwww.ほにゃらら.com等の第3レベルドメインまで)なら
- CloudflareのDNSレコードにて正しい設定がしてある
- .htaccessにて後述のコードが記述してある
という状態であれば、Cloudflare有効のままサーバー側のAutoSSL自動実行にて更新失敗しないで勝手にSSL証明書は更新できます。
■CloudflareのDNSレコードにて正しい設定がしてある
例、wwwなしの「ほにゃらら.com」の場合
少なくとも
| タイプ | 名前 | コンテンツ | プロキシ ステータス | TTL |
|---|---|---|---|---|
| A | * | サーバーのIPアドレス | プロキシ済み | 自動 |
| A | ほにゃらら.com | サーバーのIPアドレス | プロキシ済み | 自動 |
| A | www | サーバーのIPアドレス | プロキシ済み | 自動 |
となっている。
■.htaccessにて以下のコードが記述してある
#■■■■■常時ssl・wwwなしに統一・ここから■■■■■
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# ■Basic認証の動作用■Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# ■httpsに統一
RewriteCond %{HTTPS} off
# ●AUTOSSL対策
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#■ wwwなしに統一
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
# ●AUTOSSL対策
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
#■■■■■常時ssl・wwwなしに統一・ここまで■■■■■※上記記述はWordPress用の記述です。
その他のCMSだとどうなるのかは不明です。
m(_ _)m
- ほにゃらら.com※第2レベルドメイン
- www.ほにゃらら.com※第3レベルドメイン
までであれば、Cloudflare有効のままサーバー側のAutoSSL自動実行にて更新失敗しないで勝手にSSL証明書は更新できます。
■注意■
www.blog.kaimonojyoz.jp のような第4レベルドメインの場合は
- (上記2点がちゃんとできていても)Cloudflare有効のままサーバー側のAutoSSL自動実行にて必ず更新失敗する
ので、
一時的に「Cloudflare を一時停止する」でCloudflare全体を一時的に無効して、更新に失敗したドメインだけcPanelにてAutoSSLを手動実行してサーバー側のSSL証明書を手動で更新して、その後「Cloudflare の一時停止を解除」する
しか方法がないかと思います。
これはCloudflareの仕様です。
上記「■参考■※上級者向け」の解決方法は、1年くらい前に世界中のサイト・ブログをかなり調べてこの解決策にたどり着きました。
wwwありなしやCloudflareの設定およびサーバーの種類によって異なる場合も多々ありますので、ご注意ください。