hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » UsersWiki » nao-pon » blog » 2010-03-27

RSS of nao-pon/blog
Sat 27 Mar 2010
 

XOOPS の SSL 対応 (http, https どっちでもOK) anchor.png

気付いている人もいると思いますが、当サイトを SSL 対応としました。http でも https でもどちらでも同じページが表示されます。

曲がりなりにもログイン機能を有しているので、このご時世 SSL 対応にしないとと思い立ち、無料で証明書を発行してくれる(個人限定で1年間) StartSSL を知ったので、設定してみました。

Page Top

SSL 証明書のインストール anchor.png

を参考にサーバーの Apache を設定、StartSSL の場合、中間認証局の証明書 sub.ca.crt も必須なので忘れずに設定する。

sub.ca.crt は DER 形式(バイナリファイル)なので、次のように PEM 形式に変換する

mv sub.class1.server.ca.crt sub.ca.der
openssl x509 -inform der -in sub.ca.der -out sub.ca.crt

なお、Apache 1.3 での SSL は ひとつのIPでひとつのホストしか利用できないので、ネームベースのバーチャルホストではどれかひとつのホストに絞る必要があるので、xoops.hypweb.net 以外のホストは、http にリダイレクトさせています。(そもそも、接続前に証明書が不正だと警告が出るけどね)

Page Top

XOOPS の調整 anchor.png

Page Top

mainfile.php anchor.png

XOOPS_URL を接続により切り替える。

    define('XOOPS_IS_SSL', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on'));
    if (XOOPS_IS_SSL) {
        define('XOOPS_URL', 'https://xoops.hypweb.net');
    } else {
        define('XOOPS_URL', 'http://xoops.hypweb.net');
    }
Page Top

class/template.php anchor.png

サイト内リンクをきちんと区分けするため、http と https で、Smarty テンプレート利用時のコンテンツキャッシュを別にする。

class/template.php の XoopsTpl クラスに次のメソッドを追加し Smarty クラスのメソッドをオーバーライドする。

これは、XOOPS 2.0.16a の場合だけど、XCL ではプリロードでいけるのかな。 :thinking:

    function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
    {
        if (XOOPS_IS_SSL) {
            $cache_id .= '_SSL';
        }
        return parent::clear_cache($tpl_file, $cache_id, $compile_id, $exp_time);
    }
 
    function is_cached($tpl_file, $cache_id = null, $compile_id = null)
    {
        if (XOOPS_IS_SSL) {
            $cache_id .= '_SSL';
        }
        return parent::is_cached($tpl_file, $cache_id, $compile_id);
    }
 
    function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)
    {
        if (XOOPS_IS_SSL) {
            $cache_id .= '_SSL';
        }
        return parent::fetch($resource_name, $cache_id, $compile_id, $display);
    }
Page Top

テンプレートの調整 anchor.png

$smarty.const.XOOPS_IS_SSL で SSL を判定できるので、適宜場合分けして SSL 側へのリンクなどを付ける。



Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 452, today: 1, yesterday: 2
Princeps date: 2010-03-27 (Sat) 11:42:24
Last-modified: 2010-03-27 (Sat) 11:42:24 (JST) (4926d) by nao-pon
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
最近の更新
オンライン状況
82 人のユーザが現在オンラインです。 (2 人のユーザが UsersWiki を参照しています。)

登録ユーザ: 0
ゲスト: 82

もっと...
サイト情報