ホーム > フォーラム > 質問箱 > XCL2.2 > SSLの設定について

SSLの設定について
投稿者: atom-s | 投稿日時: 2013/6/17 18:22 | 閲覧: 16371回
atom-s

初心者です。宜しくお願い致します。

現在XCL 2.2.1 Beta2でサイトを作成しています。

このたび独自SSLを導入する為、証明書を取得しました。
証明書のインストールまでは上手く行ったのですが、XOOPSのSSL化で躓いております。

私の希望としましては、新規登録・ログイン・プライベートメッセージ・問い合わせフォームなどを暗号化できればと考えております。

gusagiさんのsslfilter preloadがある事を知り(サーバーがダウンしている様ですが)、ソースを探して導入してみたものの変化が起きない状態です。

ログインのみSSLを利用する方法は一度実行して成功したのですが、ガラケーからログインしようとすると、SSLログインを選択していない場合でもログインに失敗するというエラーが発生した為、現在はSSLを外しています。

sslfilter preloadを適用させる方法、またはそれに近い動作をさせる方法はないものでしょうか?

宜しくお願い致します。
タグ:

コメント(6)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: SSLの設定について 
投稿者: bluemoonjp | 投稿日時: 2013/6/18 23:23
bluemoonjp

部分的な実装は過去色々あったと思いますが、一番簡単でシンプルな方法として、  FaceBook 等と同様にサイト全体を https にしてしまう方法をお勧めします。

html/mainfile.php 編集例

define('XOOPS_URL', 'http://localhost/html');

define('XOOPS_URL', 'https://localhost/html');
Re: SSLの設定について 
投稿者: Ryuji | 投稿日時: 2013/6/19 12:32
Ryuji

龍司です。

ちょっと変則的なやり方ですが、.htaccessとmod_rewriteでSSL対応することがよくあります。
 
 XOOPSでユーザ登録やログイン画面等だけSSL対応する.htaccess
 http://qiita.com/RyujiAMANO/items/341ff2ab5dffc2e842ce

# 対応するページを増やすときはRewriteCond行を追加したりします。

さらにmainfile.phpでXOOPS_URLを


if($_SERVER['HTTPS']){
  $protocol = 'https';
}else{
  $protocol = 'http';
}
define('XOOPS_URL', $protocol . '://example.com');



のようにして、http, httpsどちらでアクセスがあっても大丈夫なようにしておきます。

ちょっとhtaccessを書くのが面倒ですが、わりと使える手ですよ。
Re: SSLの設定について 
投稿者: atom-s | 投稿日時: 2013/6/20 17:39
atom-s

bluemoonjpさん、Ryujiさん、ご回答頂きありがとうございます。

教えて頂いた方法を試してみようと思っていた矢先、別の調整をしている最中に
突然500エラーが発生してサイトが表示されなくなってしまいました!

現在、悪戦苦闘しておりますがまだ復旧できておりません(T T)

500エラーについては新たに質問を投稿させて頂きます。
Re: SSLの設定について 
投稿者: atom-s | 投稿日時: 2013/6/24 16:38 | 親コメント: #21305
atom-s

お世話になります。

教えて頂いた方法で、.htaccessを記述してみました。


RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(user|register|edituser|lostpass)\.php [OR]
RewriteCond %{REQUEST_URI} ^/modules/user/
RewriteCond %{REQUEST_URI} ^/modules/message/
RewriteCond %{REQUEST_URI} ^/modules/ccenter/
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L]

RewriteCond %{REQUEST_URI} !(^/(user|register|edituser|lostpass)\.php)
RewriteCond %{REQUEST_URI} !(^/modules/user/)
RewriteCond %{REQUEST_URI} !(^/modules/message/)
RewriteCond %{REQUEST_URI} !(^/modules/ccenter/)
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L]


上記ファイルをアップしましたところ、
SSL指定外のページをhttps://で表示させようとするとhttp://にリダイレクトされるのですが、
肝心のuser、message、ccenterモジュールがhttps://になりません。

mainfile.phpも


 if($_SERVER['HTTPS']){
   $protocol = 'https';
 }else{
   $protocol = 'http';
 }
 define('XOOPS_URL', $protocol . '://〇〇〇〇.com');
 


の様に変更しました。


どこか抜けている所、間違えている点などはありますでしょうか?
Re: SSLの設定について 
投稿者: Ryuji | 投稿日時: 2013/6/27 17:16 | 親コメント: #21313
Ryuji

龍司です。


引用:
RewriteCond %{REQUEST_URI} ^/(user|register|edituser|lostpass)\.php [OR]
RewriteCond %{REQUEST_URI} ^/modules/user/
RewriteCond %{REQUEST_URI} ^/modules/message/
RewriteCond %{REQUEST_URI} ^/modules/ccenter/


たぶんここですね。
user,message, ccenterいずれかへのアクセスでhttpsでなかったらリダイレクトしたいので


RewriteCond %{REQUEST_URI} ^/(user|register|edituser|lostpass)\.php [OR]
RewriteCond %{REQUEST_URI} ^/modules/user/ [OR]
RewriteCond %{REQUEST_URI} ^/modules/message/  [OR]
RewriteCond %{REQUEST_URI} ^/modules/ccenter/


こんな感じでそれぞれOR指定すればいけそうです。更に正規表現でまとめると下記ですかねぇ

RewriteCond %{REQUEST_URI} ^/(user|register|edituser|lostpass)\.php [OR]
RewriteCond %{REQUEST_URI} ^/modules/(user|message|ccenter)/


これでうまくいくといいんですが
Re: SSLの設定について 
投稿者: atom-s | 投稿日時: 2013/6/27 18:55 | 親コメント: #21314
atom-s

レスありがとうございます。
以下で上手く行きました。

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(user|register|edituser|lostpass)\.php [OR]
RewriteCond %{REQUEST_URI} ^/modules/user/ [OR]
RewriteCond %{REQUEST_URI} ^/modules/message/ [OR]
RewriteCond %{REQUEST_URI} ^/modules/ccenter/
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L]

RewriteCond %{REQUEST_URI} !^.*\.(gif|jpg|jpeg|png|swf|css|js|ico)$
RewriteCond %{REQUEST_URI} !(^/(user|register|edituser|lostpass)\.php)
RewriteCond %{REQUEST_URI} !(^/modules/user/)
RewriteCond %{REQUEST_URI} !(^/modules/message/)
RewriteCond %{REQUEST_URI} !(^/modules/ccenter/)
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L]


※httpからhttpsに移る際にブラウザが警告を出していたので、
HTTP強制変換除外記述を入れるといいと教えてもらい、下記の行を追加しています。

RewriteCond %{REQUEST_URI} !^.*\.(gif|jpg|jpeg|png|swf|css|js|ico)$

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top