Typecho で HTTPS 化後に管理画面へログインできない問題

📢 この記事は ChatGPT によって翻訳されました

はじめに

以前 Typecho を Docker コンテナへ移行したとき、HTTPS を有効化すると管理画面にログインできなくなった。
HTTPS を無効化すれば正常にアクセスできる。

Docker 以前の通常構成では問題なかったので、Docker ネットワークのせいかと思ってとりあえず HTTPS を切って編集して、そのまま放置してた。
今回改めて Typecho を使うことになり、再び同じ症状に遭遇。今後の運用のためにも原因を調査して解決策を記録しておく。

解決方法

解決方法はめっちゃシンプル。
data/config.inc.php の末尾に以下のコードを追加するだけ:

1
define('__TYPECHO_SECURE__', true);

これでコンテナを再起動すれば OK。

原因について

参考記事によると、ユーザーとブラウザ間の通信は HTTPS だけど、Typecho 側 (PHP) が受け取るのは Cloudflare 経由の HTTP リクエスト。 その結果、PHP が HTTP ベースでレスポンスを返してしまい、セッションエラーやログイン不可になるらしい。

参考記事

Typecho HTTPS 无法登陆后台

Visits Since 2025-02-28

Hugo で構築されています。 | テーマ StackJimmy によって設計されています。