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

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

RSS of nao-pon/blog
2010 3月 27 (土)
 

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 側へのリンクなどを付ける。



トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 546, today: 1, yesterday: 0
初版日時: 2010-03-27 (土) 11:42:24
最終更新: 2010-03-27 (土) 11:42:24 (JST) (5106d) by nao-pon
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





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

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

もっと...
サイト情報