Re: 常時SSL化について

2016年6月16日 at 0:03

初めまして。
現在、作成中のConcrete5サイトが同じような条件下でしたので、
こちらのフォーラムをずっと参考にさせていただいてましたが、
同じ問題でお困りの方が多いようなので、当方が試した結果を共有致します。

さくらのレンタルサーバースタンダード
ラピッドSSL(SNI SSL)
Concrete5はCore Version - 5.7.5.8で、
常時SSLをhttp://xxx.com/ で行うようにしています。
(コモンネームは xxx.com )

さくらインターネット側のコントロールパネルでの設定は
www無しとwwwありをそれぞれ別々のドメインとして設定し、
SNI SSLはwww無しのhttp://xxx.com/ のみに証明書をインストール、
・wwwを付与せずマルチドメインとして使用する(上級者向け)
を選択してます。
またwwwありの方は物理的に別のディレクトリに設定して、mod_rewriteでwww無しhttpsにアクセスするようにしてます。

.htaccessの設定は特に変更せず、
Concrete5側は SSL Redirect Configuration のアドオンを使用し、設定で *(ワイルドカート)で全てのアクセスをSSL Redirectする設定にしてます。

また、 application/boostrap/app.php の先頭に、


$request = Request::getInstance();
if ($request->headers->has('HTTP_X_SAKURA_FORWARDED_FOR')) {
$request->server->set('HTTPS', 'on');
$request->env->set('HTTPS', 'on');
$request->server->set('HTTP_HOST', 'xxx.com');
$request->env->set('HTTP_HOST', 'xxx.com');
$request->server->set('SERVER_NAME', 'xxx.com');
$request->env->set('SERVER_NAME', 'xxx.com');
}


を追加して強制的なSSLアクセスと、
曖昧な解釈になってしまうらしい、さくらレンタルサーバーのHOSTなどを、www無しのURIに強制固定するようにしています。

さて、このような設定の状態での挙動ですが、

http://xxx.comhttp://xxx.com にリダイレクト
http://www.xxx.comhttp://xxx.com にリダイレクト
してくれます。
トップページは問題なく表示され、cssやjsなど全てのアクセスがSSL化できています。

問題は「プリティーURL」の設定を行った時で、
http://xxx.com/contact などには無限ループに入ってしまい表示できません。
ですがプリティーURLの設定を解除すると、
http://xxx.com/index.php/contact となって問題なくSSLで表示可能でした。
(全て確認できてませんが)管理画面(index.php/dashboard)も問題なく機能しているようです。

出来ればプリティーURL設定を行った状態で各ページがSSLで動いてくれれば、
理想的なさくらレンタルサーバーでの常時SSL化が完成するのですが。。

長文失礼致しました。
どなたかの参考になれば幸いです。

タグ:

Re: 常時SSL化について

2016年6月21日 at 13:42
chakn様
ありがとうございます。

さくらインターネット側のコントロールパネルでの設定は
www無しとwwwありをそれぞれ別々のドメインとして設定し、
SNI SSLはwww無しのhttp://xxx.com/ のみに証明書をインストール、
・wwwを付与せずマルチドメインとして使用する(上級者向け)


この部分が、事情があり対応できないので
試すことはできませんでした。
この部分が重要な要素ぽいのでしょうか?


プリティURL設定を外したりしても
うちの環境ではうまくいきませんでした。
現状でもメールフォームやログイン画面のように文字を入力する画面と
トップページ以外は、https:とて入力すれば鍵付きで表示されるます。