Re: 常時SSL化について

2016年6月7日 at 21:13

初めまして
SSL化で詰まってまして
似ている問題でしたので、
こちらの方に質問させていただきました。


・お使いのサーバー
  さくらインターネット
  ビジネスコース

・お使いの concrete5 のバージョン (下記の環境情報があればなお可)

# concrete5 Version
Core Version - 5.7.5.8
Version Installed - 5.7.5.8
Database Version - 20160412000000

# concrete5 Packages
Spacer (0.9.3).

# concrete5 Overrides

長いので省略しました

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - Off
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache/2.2.31

# Server API
cgi-fcgi

# PHP Version
5.4.45

# PHP Extensions
cgi-fcgi, Core, ctype, curl, date, dom, ereg, exif, fileinfo, filter, gd, gettext, gmp, hash, iconv, json, libxml, mbstring, mcrypt, mysql, mysqli, mysqlnd, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, posix, Reflection, session, SimpleXML, snmp, soap, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, zlib.

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - -1
max_input_vars - 1000
memory_limit - 128M
post_max_size - 8M
sql.safe_mode - Off
upload_max_filesize - 2M
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - <i>no value</i>
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5



・お困りの内容を、できるだけ詳しく

独自SSLで 現在 https://url  http://url  
両方でページは表示しています。同じフォルダーのデータを読みに行っています。

ページ全体を全て httpsの常時SSLしたいのですが

ページ全体のSSL対応は 「URLとリダイレクト」のところの
SSL URL のところにURLを入れてるのですがこれだけでいいのでしょうか?

http で入力された場合でも 自動的にhttpsにするにはどこをさわればよいのでしょうか?

htaccessは
プリティーURLの設定してますので

DirectoryIndex index.php index.html index.cgi index.shtml
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
# RewriteRule ^(.*)$ https://www.raytron.co.jp/ $1 [R=301,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
httpsが引用にしてもsが外れますので全角の:に置き換えてます

コメントアウトを外すと
全てhttps:// になるのですが
メールフォームはボタンを押すとエラーになります、
ログインもできなくなります。

コメントアウトした場合でも
 https:// で表示した
メールフォームや ログインページなど 文字を入力して
ボタンを押すと
http に戻って暗号化されないページに移動します。
MAC サファリでは 暗号化されないとアラートが出るので。
されてないのだと思います

この症状はさくらだけの症状で、他のサーバでは起こらない現象なのでしょうか?

フォームブロックのページのみSSL対応でもよいので解決策があれば

サーバのこととか、よくわかりませんので
解決方法のヒントがあればお教え願いませんでしょうか?
乱暴な質問ですいません。

タグ:

Re: Re: 常時SSL化について

2016年6月10日 at 16:43
tokami様
5.7.5.8でも不具合が出るとの情報ありがとうございます。

ページ全体のSSL対応は 「URLとリダイレクト」のところの

これはカノニカルURLの設定となりますので、ちょっと違います。
具体的には「https://www.raytron.co.jp」「https://raytron.co.jp」の両方でアクセス可能な場合に、どちらのURLを用いて表示するか?を設定する項目となります。

http で入力された場合でも 自動的にhttpsにするにはどこをさわればよいのでしょうか?

concrete5にその設定は無く、Katz Ueno様が上の方で紹介している「SSL Redirect Configuration」というアドオンを使うか、tokami様が記述しているようにサイト側の.htaccessで設定します。

ただ…それで不具合が出ているのでこのトピックが未解決となっております。

.htaccessのコメントアウトを外してエラーになる件は、さくら側でポート番号80を返しているのが原因です。

会話形式で説明するとこんな感じです。
1)さくら「httpをhttpsに転送します。https通信ですがポート番号は80です」
2)con5「httpsでの接続要求がありましたが、ポート番号が443でないとhttpsとは認められないので、httpとして処理します」
3)さくら「httpをhttpsに転送します…(以下同様)」
といった感じでループが発生しエラーとなります。

一般的なhtml/cssページを処理するだけの場合はhttpsでも接続可能ですが、
フォームブロックやログイン、レイアウト機能、リンクのライトボックス風表示など、動的に内部処理が行われるページの場合は、上記ループが発生してエラーとなるようです。

.htaccess該当部分をコメントアウトしても、フォーム入力時にhttpに戻って暗号化されないページに移動する現象も上記ループと同じ原因です。con5側がhttps通信と認めていないのでhttpに飛ばされます。

この症状はさくらだけの症状で、他のサーバでは起こらない現象なのでしょうか?

https通信時、ポート番号が443になる一般的なサーバーの場合はこの現象は起こりません。
※さくらのhttpsはプロクシとして80番ポートで動作しています。
http://help.sakura.ad.jp/app/answers/detail/a_id/2325/~/ssl%E5%88%A9%E7%94%A8%E6%99%82%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9

またレガシー(5.6)では.htaccessの設定だけでhttps専用にすることができ、バグも発生しません。

フォームブロックのページのみSSL対応でもよいので解決策があれば

私の場合、フォームブロックを使わずcon5外部にメール送信専用phpを設置して対応しました(前述の通り、内部処理を行わないhtml/cssページならばバグが発生しないので)。

参考になれば幸いです。
 

Re: 常時SSL化について

2016年6月11日 at 14:14
aniya様

返答ありがとうございます。
わからなかったことが、解決できて助かりました。

concrete5にその設定は無く、Katz Ueno様が上の方で紹介している「SSL Redirect Configuration」というアドオンを使うか、tokami様が記述しているようにサイト側の.htaccessで設定します。


SSL Redirect Configurationはエラーが出て動きませんでしたので
htaccessに書き込みました。

対策として、さくらサーバで解決が無理な場合は
メールフォームページのみ静的HTMLで作って別にあげようと思っています。

後、hisikawa様が下記に書いてくれている方法を、週明けに試してみようかと思います。