お知らせ
Joomla!

さくら共用サーバでJoomlaをSNI SSL対応

さくらインターネットの共用サーバで、SNI SSLを設定、Joomla!(WordPressでも同様)でサイト全体をSSL化しました。

 

 

熊本地震で被災された皆様に、謹んでお見舞い申し上げます。

 

既に発生から丸4日ですが、地震がなかなか収まらないこと、行方不明の方の捜索が難航していることが心配です。

 

SNSや拡散情報で、個人支援は格段にスピードや信頼性を得ています。その中でネットの情報も分散、コピーが多くて最新の情報を集約することが難しいな、とも感じています。Facebookでは不特定多数の投稿を運営をするのは管理が難しいですし、役人はリアルで手一杯となりネットまでは手が回らない上、不確定に軽く情報が流せない状況となります。
日頃から若いSNS世代で町内会的に代表者を決めて、アカウントの管理者となりネット上での「町内会」のようなことが広まるといいかもしれません。あくまで「災害時の情報収集、提供のためににがんばる」というスタンスです。

さらに、SNSやインターネットが無い状態での「情報共有」手段の活躍も大切だと思いました。手書き掲示板や校庭からのメッセージがメディア経由で伝わることの速度やパワーを感じます。SNSやつながりが不得意な人、インターネットを使っていない人への対応はどうなんだろう。私はSNSで声をかけることができるけれども、SNSや携帯、スマホがない人の声を聞いたり、励ましたりはどうしているのだろうか、など。情報が飛び交う大災害の時ほど、見えない部分も気になりますね。

 

こちらは大変非力なのですが、被災した方々への支援・応援のための情報について日々関心を持っていきます。まずは、捜索と水道・電気・ガスの生活インフラ復旧活動のなるべく早い解決をお祈り申し上げます。

 

 

さくら共用サーバでのJoomla! SNI SSL化

多くの共用サーバでは、SSLは共有となり別ドメインになります。Wordpress、Joomla!などCMSでは「問い合わせ」ページだけ共有SSL(Shared SSL)のURLへリダイレクト設定して対応しておりました。

 

ー昨年あたりからの常時SSL化推進の流れ、格安のサーバ証明書がでてきましたので、小企業、個人経営のWebサイトにもSSLが導入しやすい状況になっていました。そしてGoogle検索エンジンがSSL対応をランキングシグナルに採用することが正式にアナウンスされ、2015年12月にはSSL通信でのクロールが始まりました。

 

Google 「HTTPSページが優先的にインデックス登録されるようになります」
http://googlewebmastercentral-ja.blogspot.jp/2015/12/indexing-https-pages-by-default.html

 

無料のサーバ証明書 Let’s Encryptが公式にサービスを開始しました。
http://www.excite.co.jp/News/it_g/20160418/Slashdot_16_04_18_0221205.html

 

 

今後はインターネットの通信はすべて暗号化する方向へ加速します。FTPSへの対応、メールの送受信ももっと手軽にSSL通信できるようになるでしょう。
これはいい機会、既に、企業サイトは「SSL対応必須」で! とアナウンスしております。中小企業の方にもセキュリティ関連資料をお渡しして、SSL対応への費用を計上していただくよう推進しております。

ということで、今回は直接管理している共用サーバに設置しているサイトを全てSSL化するミッションに取り組んでいます。その際、注意点がありましたので、備忘録として記述しておきます。

 

SNI SSLとリダイレクト

さくらレンタルサーバのスタンダード・プランでの設定例です。SNI SSL登録でRapidSSL証明書を申し込みます。証明書の申し込みはホスト名ごとになりますので「www」有り無しを決定しておいてください。独自ドメインで証明書申し込みと、インストール、SNI SSL設定がまとめてサーバコントロールパネルから設定できます。

SNI SSL 設定が完了して、https://example.com でSSLページ表示を確認できれば、CMS側でサイト全体をSSL化します。

Joomla!2.5、3.5ではグローバル設定→サーバ設定で【SSL接続】 を「サイト全体」に設定して保存します。Wordpressでも同様にHTTPS用のプラグインを利用してサイト全体をSSL化してください。

 

SSL設定後、サイトアクセスを確認すると下層ページで「リダイレクトが多すぎます」など、リダイレクト・ループが発生してページが表示できなくなりました。
調べていると、Joomla!ではSEF URL、Wordpressではパーマリンクのカスタマイズを利用していると、mod_rewriteによるリダイレクトを行います。さくらの共用サーバでは、mod_rewriteによるリダイレクト時にHTTPSサーバ環境変数がセットされていないことがわかりました。

 

参考サイト
https://www.harukas.org/blog/2278/

 

強制的に環境変数を設定する

参考にした情報はWordpressでの設定でしたので、Joomla!の場合は以下のように設定しました。

設定ファイル:ルートのindex.php

先頭に以下を追加します。SSL通信時の環境変数に値を設定します。

if ( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
	$_SERVER['HTTPS'] = 'on';
	$_ENV['HTTPS'] = 'on';
	$_SERVER['HTTP_HOST'] = 'example.com';
	$_SERVER['SERVER_NAME'] = 'example.com';
	$_ENV['HTTP_HOST'] = 'example.com';
	$_ENV['SERVER_NAME'] = 'example.com';
} 

これで、Joomla!起動時に、さくらインターネットでの独自変数「HTTP_X_SAKURA_FORWARDED_FOR」をチェックして、SSL接続時にリダイレクト・ループが発生しなくなりました。

 

注意点:このファイルはコアファイルです。基本的にはコアファイルの編集は一切禁止しています。configuration.php、テンプレートのindex.phpでは対処できなかったので、ルートのindex.phpとなりました。コアファイル更新の際はメンテナンスが発生しますのでご注意ください。

 

共有SSLを利用したサイトのSSL化は少しハードルが高く、設定も難しかったのですが、SNI SSLによってサイト全体のSSL化が容易になりました。みなさまも是非、管理しているサイト、これから構築するサイトを100%、SSL化してください。Wordpress、Joomla!のSSL化で難しいことがありましたら、お気軽にご相談ください。

すべてのサイトがSSL化されますように!

Web制作会社をお探しのかたへ

Web制作、Webサイトリニューアルについてお気軽にご相談ください。

CMS構築のパートナー/Webシステム開発技術者をお探しの方
社内システムご担当者さま/アートディレクター・Webデザイナーさま

Webでの営業戦略、社内業務改善へのWebシステム活用に関する課題について
是非一度お問い合わせください。