参考文献からの改善点
下記参考文献に従えば、ルートのindex.php を編集してしまう。その結果、Joomlaのバージョンアップ時に、再度、index.phpを手編集する必要がありました。index.php ではdefines.phpを参照しています。defines.phpを作成し設定すれば、index.phpは編集不要でした。
なお、「Joomla多言語サイトをSSL化する事が出来ない。1言語だけならば、問題がない。」との情報がある。この方法が多言語化にも役立つかどうか、未確認です。
SSL証明書を申し込み後の待ち時間が30分程度ありましたが、それ以外は15分程度で済みました。
トラブル
Joomla!で構築したサイトを、さくらインターネットのラピッドSSLを用いて常時HTTPS化したら、エラーになる。
- The page isn’t redirecting properly(Firefox英語版)
- このページは動作していません。●● でリダイレクトが繰り返し行われました。Cookie を消去してみてください.ERR_TOO_MANY_REDIRECTSと表示される。
手順
- 決め事
- www「有り」とすることに決定
- 事前確認
- https://...のURLで、ブラウザがセキュリティリスクを表示「する」ことを確認
- さくらインターネットの「ドメイン設定」の「ドメイン設定」にて
- 「SSL」「証明書」を「登録」
- 「SSLの利用」は「SNI SSLを利用する」を選択
- 「SSL」「証明書」の「更新」にて「秘密鍵のバックアップ」
- 「SSL」「証明書」の「更新」にて「ラピッドSSL(有料サービス)のお申し込みへ進む」
- 「独自SOLの設定」の「サーバ証明書のお申し込み」画面へ進む
- SSL証明書のインストールの確認
- 「パスワード再確認」にて「ログイン(認証)」
- 以下の設定で申込
- 「お申し込み種別」は「新規取得」
- 「お申し込みプラン(税別)」は「ラピッドSSL」の「1,620円/1年」
- 支払はクレジットカード
- 「SSLサーバ証明書お申し込み」画面で申込内容を確認した後、「この内容で申し込む」
- 「お申し込み完了のお知らせ」メールが届いたのは、すぐ。
- 「クレジットカードによるお支払確認について」メールは、16分後に届いた
- 「ジオトラスト SSLサーバ証明書発行のお知らせ」メールが届いたのは、支払確認メールの30分後
- https://...のURLで、ブラウザがセキュリティリスクを表示「しない」ことを確認
- Joomlaの対応
- HTTP接続の強制
- Joomlaの管理画面の「システム」の「グローバル設定」の「サーバ」タブの「HTTPS接続の強制」を「サイト全体」に変更
- リダイレクトの対応
- この段階では、Joomlaで作成したサイトのホームと、管理画面は正しく表示された。しかし、どのコンテンツを表示させても、何度かリダイレクトされた後、「The page isn't rediecting properly」と表示された。
- 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';
}
?>
- HTTP接続の強制
参考文献
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