参考文献からの改善点

下記参考文献に従えば、ルートのindex.php を編集してしまう。その結果、Joomlaのバージョンアップ時に、再度、index.phpを手編集する必要がありました。index.php ではdefines.phpを参照しています。defines.phpを作成し設定すれば、index.phpは編集不要でした。

なお、「Joomla多言語サイトをSSL化する事が出来ない。1言語だけならば、問題がない。」との情報がある。この方法が多言語化にも役立つかどうか、未確認です。

SSL証明書を申し込み後の待ち時間が30分程度ありましたが、それ以外は15分程度で済みました。

トラブル

Joomla!で構築したサイトを、さくらインターネットのラピッドSSLを用いて常時HTTPS化したら、エラーになる。

  1. The page isn’t redirecting properly(Firefox英語版)
  2. このページは動作していません。●● でリダイレクトが繰り返し行われました。Cookie を消去してみてください.ERR_TOO_MANY_REDIRECTSと表示される。

手順

  1. 決め事
    1. www「有り」とすることに決定
  2. 事前確認
    1. https://...のURLで、ブラウザがセキュリティリスクを表示「する」ことを確認
  3. さくらインターネットの「ドメイン設定」の「ドメイン設定」にて
    1. 「SSL」「証明書」を「登録」
    2. 「SSLの利用」は「SNI SSLを利用する」を選択
    3. 「SSL」「証明書」の「更新」にて「秘密鍵のバックアップ」
    4. 「SSL」「証明書」の「更新」にて「ラピッドSSL(有料サービス)のお申し込みへ進む」
    5. 「独自SOLの設定」の「サーバ証明書のお申し込み」画面へ進む
  4. SSL証明書のインストールの確認
    1. 「パスワード再確認」にて「ログイン(認証)」
    2. 以下の設定で申込
      1. 「お申し込み種別」は「新規取得」
      2. 「お申し込みプラン(税別)」は「ラピッドSSL」の「1,620円/1年」
      3. 支払はクレジットカード
    3. 「SSLサーバ証明書お申し込み」画面で申込内容を確認した後、「この内容で申し込む」
    4. 「お申し込み完了のお知らせ」メールが届いたのは、すぐ。
    5. 「クレジットカードによるお支払確認について」メールは、16分後に届いた
    6. 「ジオトラスト SSLサーバ証明書発行のお知らせ」メールが届いたのは、支払確認メールの30分後
    7. https://...のURLで、ブラウザがセキュリティリスクを表示「しない」ことを確認
  5. Joomlaの対応
    1. HTTP接続の強制
      1. Joomlaの管理画面の「システム」の「グローバル設定」の「サーバ」タブの「HTTPS接続の強制」を「サイト全体」に変更
    2. リダイレクトの対応
      1. この段階では、Joomlaで作成したサイトのホームと、管理画面は正しく表示された。しかし、どのコンテンツを表示させても、何度かリダイレクトされた後、「The page isn't rediecting properly」と表示された。
      2. Joomlaで作成したサイトのルートディレクトリに、以下の内容のdefines.phpというファイルを作成した。必要なのは赤地で示した部分。なお、www.eample.comの部分は、実際のサイトのドメインに合わせて変更。

        <?php
        /**
         * Defines $_SERVER and $_ENV for 'SNI SSL' of 'SAKURA Internet' (http://www.sakura.ne.jp/)
         * @package    maeda.tk
         * @copyright  Copyright (C) 2017 - 2017 maeda.tk. All rights reserved.
         * @contact    www.maeda.tk, このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
         * @license    GNU General Public License version 2 or later; see LICENSE.txt
         * @requirement tested by Joomla! 3.7.2, would be compatible Joomla! 1.6.0+
         * References:
         *    2016/1/29 Joomla のSSL化は難しい! https://ischool.co.jp/2016-01-29/
         *    2016/4/18 さくら共用サーバでJoomlaをSNI SSL対応 https://pane-brut.net/news/13-joomla/11-joomla-sni-ssl.html
         */

        // die if accessed directly
        defined('_JEXEC') or die;

        // file_put_contents('defines.php.log','$_SERVER='.var_export($_SERVER,true),FILE_APPEND);
        // file_put_contents('defines.php.log','$_ENV='.var_export($_ENV,true),FILE_APPEND);
        if ( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
            $_SERVER['HTTPS']='on';
            $_ENV['HTTPS']='on';
            // 以下の4行のドメイン名は利用するドメインに合わせて変更すること
            // と思ったら、以下の4行はサクラインターネット側で設定されていたため、不要なようだ。
            // $_SERVER['HTTP_HOST'] = 'www.example.com';
            // $_SERVER['SERVER_NAME'] = 'www.example.com';
            // $_ENV['HTTP_HOST'] = 'www.example.com';
            // $_ENV['SERVER_NAME'] = 'www.example.com';
        }
        ?>

参考文献

2016/1/29 Joomla のSSL化は難しい! https://ischool.co.jp/2016-01-29/

2016/4/18 さくら共用サーバでJoomlaをSNI SSL対応 https://pane-brut.net/news/13-joomla/11-joomla-sni-ssl.html