アフィリエイト広告を利用しています

ConoHaのSSL証明書が失効【Cloudflare併用の落とし穴】ブログが3日止まっていたのに気づかなかった話

当時のRSSを掘り起こす作業をしていて、ふと気づきました。

自分のブログ、この”ものくろぼっくす”のRSSが取得できない。

おかしいなと思ってブログを開くと、トップページは表示される。でも記事によっては画像が出ない。ときどき「An error occurred」という素っ気ないエラー画面になる。

最終更新は3日前。止まっているような、動いているような、なんとも中途半端な壊れ方です。

結論から言うと、原因は、SSL証明書の失効。

ブログは3日間、実質止まっていました。気づかなかったのが、我ながら怖い。

調べたら、サーバーは全リクエストにエラーを返していた

Claude Codeに「調べて。原因を見つけて。調べるだけを行って」とお願いして、外から順番に確認してもらいました。

トップページは200で返ってくる。なのにRSSは503。記事APIも503。ログイン画面も503。実在する画像ファイルまで503。

サーバーに届いたリクエストは、全部エラーになっていました。

で、なんでトップページは見えていたのか。

「なんとなく見えていた」のは、Cloudflareのキャッシュだった

このブログは、サーバーの前にCloudflareを挟んでいます。

Cloudflareが以前の正常なページをキャッシュとして持っていて、それを配ってくれていた。だからトップページや一部の画像は見えていたんです。

キャッシュに乗っていないもの、たとえばRSSは、毎回サーバーまで取りに行く。だから確実に死んでいた。

画像が出たり出なかったりも、時々エラー画面になるのも、全部「キャッシュにあるか、ないか」の差でした。

中途半端に見えていたおかげで、3日間気づけなかった。皮肉な話です。

警告メールは、5通も来ていた

サーバーはConoHaを使っています。

調べてもらったら、ConoHaから「SSLサーバ証明書の自動更新に失敗しました」というメールが、20日前、10日前、3日前、2日前、最終日と、5通も届いていました。

全部、未読。

毎日大量のメールに埋もれて、完全に見落としていました。orz

Cloudflareを挟むと、無料SSLの自動更新が通らない

ここが今回の記事で一番お伝えしたいところです。

ConoHaの無料独自SSL(Let’s Encrypt)は、更新のときに「そのドメインが本当にConoHaのサーバーを向いているか」を確認します。

ところが、Cloudflareを挟んでいると、外から見えるのはCloudflareのアドレスです。ConoHaのサーバーは見えない。

なので、確認が通らない。何度やっても失敗する。そして90日後、証明書が失効する。

実は5月にも同じことをやらかしていて、そのときはコントロールパネルで無料独自SSLをOFFにして、ONにし直して凌ぎました。でも根本の原因が残っているので、90日後にまた同じことが起きた。それが今回です。

ConoHa + Cloudflareの組み合わせで運用している方は、同じ罠にハマる可能性が高いので、ご注意ください。

復旧の手順

やったことは3つです。

まず、CloudflareのDNS設定で、対象ドメインのプロキシをOFF(DNSのみ)に切り替える。オレンジ色の雲のアイコンをクリックして、グレーにするやつです。これでドメインがConoHaのサーバーを直接向くようになります。

次に、ConoHaのコントロールパネルで、無料独自SSLをOFFにして、ONにし直す。数分で新しい証明書が発行されました。

最後に、Cloudflareのプロキシを元に戻す。

これで復旧。RSSも記事APIも画像も、全部返ってくるようになりました。ホッと安心。

手動でやると、また忘れる。なので自動化した

ただ、これで終わりにすると、90日後にまた同じことが起きます。

「更新の時期だけプロキシをOFFにすればいい」と分かっていても、その作業を90日ごとに人間が覚えていられるか。無理です。5月と8月、2回忘れた実績があります。

そこで、Claude Codeと一緒に、番人スクリプトを作りました。

毎朝、証明書の残り日数をチェックする。残り25日を切ったら、Cloudflareのプロキシを自動でOFFにする。ConoHaの自動更新が通ったのを確認したら、自動でONに戻して、完了通知をくれる。

プロキシが外れるのは90日ごとに1日程度だけ。その間もサイトは止まりません。サーバー直配信になるだけです。

あわせて、メールの自動仕分けのルールにも「SSLサーバ証明書」という件名は大切なメールとして扱うよう追加しました。警告メールが5通も埋もれた反省です。

まとめ

ブログが中途半端に壊れていたら、CDNのキャッシュで「見えているだけ」の可能性があります。RSSやAPIなど、キャッシュされないところを確認すると、本当の状態が分かります。

ConoHaの無料独自SSLとCloudflareの併用は、そのままだと90日ごとに証明書が失効します。更新の時期だけプロキシを外す運用が必要です。

そして、90日ごとの手作業は必ず忘れます。僕は2回忘れました。仕組みにして、人間は通知を受け取るだけ、にするのがオススメです。

WordPressやブログ運営、AIとの付き合い方を「ものくろ」と一緒に学びませんか?
このブログの筆者・ものくろ(大東信仁)は、初心者向けのWordPress講座やセミナーを開催しています。

この記事を書いた人

大東 信仁

カンパチが好きです。

プロフィールはこちら

10月14日開催 参加者募集中
(画像をタップ→詳細へ)

ミッションナビゲート モニター
(画像をタップ→詳細へ)

広告