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

TOP » UsersWiki » nao-pon » blog » 2010-03-27 の変更点
  
現: 2010-03-27 (土) 11:42:24 nao-pon ソース
Line 1: Line 1:
 +#navi
 +RIGHT:&rsslink(../);
 +#boxdate
 +* XOOPS の SSL 対応 (http, https どっちでもOK) [#wed8b449]
 +RIGHT:&tag(XOOPS,自宅サーバー,SSL);
 +
 +気付いている人もいると思いますが、当サイトを SSL 対応としました。http でも https でもどちらでも同じページが表示されます。
 +
 +曲がりなりにもログイン機能を有しているので、このご時世 SSL 対応にしないとと思い立ち、無料で証明書を発行してくれる(個人限定で1年間) [[StartSSL:http://www.startssl.com/]] を知ったので、設定してみました。
 +
 +** SSL 証明書のインストール [#cef8e22f]
 +
 +- [[無料 SSL 証明書 StartSSL を使う | futuremix:http://futuremix.org/2009/02/startssl]]
 +- [[StartCom Free SSL Certificate:http://cryst.tv/experiment/StartComFreeSSL_Certificate/StartCom_Free_SSL_Certificate.html]]
 +
 +を参考にサーバーの Apache を設定、StartSSL の場合、中間認証局の証明書 [[sub.ca.crt:http://www.startssl.com/certs/sub.class1.server.ca.crt]] も必須なので忘れずに設定する。
 +
 +[[sub.ca.crt:http://www.startssl.com/certs/sub.class1.server.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 にリダイレクトさせています。(そもそも、接続前に証明書が不正だと警告が出るけどね)
 +
 +** XOOPS の調整 [#dc58468b]
 +
 +*** mainfile.php [#vea35a06]
 +
 +XOOPS_URL を接続により切り替える。
 +
 +#code(php,nonumber){{
 +    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');
 +    }
 +}}
 +
 +** class/template.php [#b3dd5634]
 +
 +サイト内リンクをきちんと区分けするため、http と https で、Smarty テンプレート利用時のコンテンツキャッシュを別にする。
 +
 +class/template.php の XoopsTpl クラスに次のメソッドを追加し Smarty クラスのメソッドをオーバーライドする。
 +
 +これは、XOOPS 2.0.16a の場合だけど、XCL ではプリロードでいけるのかな。 :thinking:
 +
 +#code(php,nonumber){{
 +   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);
 +    }
 +}}
 +
 +** テンプレートの調整 [#te90b5ae]
 +
 +$smarty.const.XOOPS_IS_SSL で SSL を判定できるので、適宜場合分けして SSL 側へのリンクなどを付ける。
 +
 +RIGHT:&font(90%){&page_comments;};
 +#navi
  

  • nao-pon/blog/2010-03-27 のバックアップ差分(No. All)
    • 現: 2010-03-27 (土) 11:42:24 nao-pon

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 553, today: 1, yesterday: 0
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





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

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

もっと...
サイト情報