常時SSL Lab.の「実践術」では、ネットショップの常時SSL化手順として、「EC-CUBE 3.0.x」の例をご紹介しました。
今回は、その一世代前のバージョンにあたる「EC-CUBE 2.13.x」系のバージョンで構築されたネットショップの常時SSL化を取り上げます。
EC-CUBEについては、EC-CUBE 3.0.xの記事で簡単に説明していますので、そちらをご参照ください。
EC-CUBE 2.13.xがリリースされた時期は、現在ほど常時SSLという言葉が浸透してはいませんでしたので、3.0.xよりもセキュリティを意識せずに構築されたネットショップが多い可能性があります。
前回の記事でも書きましたが、ネットショップは通常のWebサイト以上に安全性が求められますので、常時SSL化は必須のセキュリティ対策です。
大事なことなのでもう一度言いますが、もし現在、「http://」で始まるURLでEC-CUBEを運用している場合は、必ず常時SSL化を実施しましょう。
事前準備
実際の作業に入る前に、以下の内容を確認しておきましょう。
EC-CUBEを最新の状態に
EC-CUBEの本体、プラグイン、デザインテンプレートなど、更新可能なものはすべて適用しておきましょう。
EC-CUBEは、重大な修正を含むセキュリティFIXが時折リリースされていますので、定期的に公式サイトなどをチェックしておくと良いでしょう。
必ずバックアップを
作業中にトラブルが発生してもすぐに切り戻しができるように、EC-CUBEで公開しているネットショップのファイル/データベースのバックアップを実施しておきます。
EC-CUBEのプログラムファイルをFTPでダウンロードしたり、データベースをphpMyAdminやphpPgAdminなどでエクスポートしておきます。
SSLサーバー証明書の購入/設定
常時SSL化にあたり必要なSSLサーバー証明書の購入や導入方法、Webサイトのドキュメントルートの設定手順などを確認しておきましょう。
HTTPとHTTPSのドキュメントルートが固定のディレクトリ以外に設定できないなどの場合は、ファイルの移動などの作業が別途必要になります。
留意すべき点
常時SSL化の際、Google系のツールは設定の変更や再登録が必要なものがあります。
以下の記事を確認しておいてください。
EC-CUBE 2.13.x系の常時SSL化の作業
ファイルの移動やドキュメントルートの設定
ネットショップを公開しているサーバーの仕様により作業が変わります。
【HTTPとHTTPSのドキュメントルートが異なるサーバーの場合】
HTTPとHTTPSのドキュメントルートを固定のディレクトリ以外に設定できない場合や、運用の理由で異なるディレクトリに設定して動かせないなどの場合、HTTPで公開しているEC-CUBE関連の全ファイルをHTTPSのドキュメントルートにFTPなどでコピーします。
【ドキュメントルートが自由に設定できるサーバーの場合】
HTTPとHTTPSのドキュメントルートを同じディレクトリに設定します。
設定ファイルの記述変更
EC-CUBE 2.13.xの常時SSL化では、サーバー上のEC-CUBEのインストールされているディレクトリに存在する設定ファイルを、一部書き換える必要があります。
「EC-CUBEのインストールディレクトリ/data/config/」のディレクトリにある「config.php」をダウンロードします。
HTTPとHTTPSのドキュメントルートが異なるサーバーの場合は、HTTPSの方にあるファイルが対象です。
念のため、コピーを保存してバックアップを取ってから、作業を行いましょう。
ファイル内の以下の記述を変更し、「HTTP_URL」「HTTPS_URL」の両方とも、「https://」から始まるURLに書き換えます。
1 2 |
define('HTTP_URL', 'http://ショップのドメイン名/html/'); define('HTTPS_URL', 'http://ショップのドメイン名/html/'); |
1 2 |
define('HTTP_URL', 'https://ショップのドメイン名/html/'); define('HTTPS_URL', 'https://ショップのドメイン名/html/'); |
書き換えが完了したら、サーバーの同じディレクトリ/ファイルを、上書きでアップロードします。
※ サーバーやショップの設定によっては、末尾の「/html/」がない場合もあります。
CSSやデザインテンプレート/プラグインなどのファイルの見直し/修正
CSSやデザインテンプレートの各ファイルを自作している場合、内部のパスの記述が「http://」になっている箇所は、「https://」に修正します。
外部のデザインテンプレートやプラグインはHTTPSに対応しているか確認しておき、調整が必要な場合は事前に実施しておきます。
EC-CUBE 管理画面での設定
EC-CUBEの管理画面に「https://」のURLでアクセスします。
URLの「http://」をそのまま「https://」に変更するだけでアクセスでき、ログインID/パスワードも同じものを入力してログインします。
管理画面にログインできたら、「システム情報設定」→「管理画面設定」にアクセスします。
「SSL制限」の項目で「SSLを強制する。」にチェックを入れ、「この内容で登録する」ボタンをクリックします。
ちなみに、前述の設定ファイルの記述変更前であれば「http://」のURLでも管理画面にアクセスできますが、「SSL制限」の項目の「SSLを強制する。」は選択できません。
完了メッセージが表示されたら、ネットショップの常時SSL化は完了しています。
「http://」でアクセスしても「https://」に自動的に転送されるようになります。
ファイルの削除
HTTPとHTTPSのドキュメントルートが異なる場合のみ、常時SSL化の作業が全て完了したら、HTTPのドキュメントルートのEC-CUBE関連のファイルを削除します。
削除後に「.htaccess」ファイルを設置して、HTTPへのアクセスをHTTPSに301転送します。
Webサイトのチェックやエラーへの対処
常時SSL化が完了したつもりでも、プラグインなどが原因で、WebブラウザがSSLに関するエラー(「Mixed Content」など)を表示して、HTTPSで正しく接続できていないケースがあります。
Webブラウザのアドレスバーの左端が鍵マークなどになっていない場合は、以下のページを参考に、エラーの原因と対処を実施してみましょう。
この記事のポイント
- サーバーの仕様や現在の状態により、必要な作業が異なる場合があります。
- EC-CUBE 2.13.xの常時SSL化は、設定ファイルの書き換えと管理画面での設定が必要です。
- Webサイトの表示やエラーのチェックを必ず実施しましょう。