Cyfonsで作った会員サイトがSSL化できない!? 解決法と学び

では、Cyfonsを使うメリット(毎月の配信費用が不要)に触れつつ、今回のSSL化顛末を踏まえて優しい導入記事に組み直しました。

最近、同じドメイン内にあるWordPressサイト(/lp/)は問題なくSSL(https)で表示されるのに、
Cyfonsで作った会員サイト(/ai/)だけがどうしても https にならない…という現象に遭遇しました。

Cyfonsは、一度購入すれば毎月のメルマガ配信費用が掛からないのが魅力で、
私も「長く使うならこれがいい!」と思って導入しました。
でも、いざSSL化しようとしたらちょっとした落とし穴が…。

現象

  • https:// でアクセスしても、自動的に http:// に戻る
  • 証明書は有効、他ディレクトリ(WordPress部分)は正常にSSL化済み

原因

Cyfonsの設定ファイルに、サイトURLが固定で http になっていました。
つまり、サーバーや証明書ではなくアプリ側の設定が問題でした。

解決手順

1. 設定ファイルを確認

/ai/common/config.ini に次の記述がありました。

define('URL', 'https://ai-notes.net/ai');

2. URLをhttpsに変更

define('URL', 'https://ai-notes.net/ai');

この URL をもとに他の定数(URLADD, URLEDIT など)も自動生成されるため、
ここを直すだけで全体がhttps対応になりました。

ついでにセキュリティ強化

SSL化ができても、CookieがHTTPでも送られてしまうのはもったいないので、
bootstrap.php の先頭にセッションCookieのSecure設定を追加しました。

if (session_status() === PHP_SESSION_NONE) {
    session_set_cookie_params([
        'secure'   => true,
        'httponly' => true,
        'samesite' => 'Lax',
    ]);
}

確認

  • curl -I https://ai-notes.net/ai/200 OK
  • http:// でアクセス → httpsへリダイレクト
  • ブラウザで開くと、ちゃんと鍵マークが表示される

学びとまとめ

  • SSL証明書が有効でも、アプリのURL設定がhttp固定だとhttps化できない
  • 設定ファイルのURLを修正するだけで解決する場合がある
  • ついでにCookieやHSTSの設定で安全性もアップできる
  • Cyfonsはランニングコストが掛からない分、こうした初期設定は自分でやる必要がある

私の場合、これで会員サイトも無事にSSL対応できました。
Cyfonsは、長期的にメルマガを配信したい人にはとてもコスパの良いシステム。
導入時は、最初にSSL設定とセキュリティ強化を済ませておくと安心です。

Cyfosはどんなツールか見てみる ⇒

コメント