12月
28
2011

XOOPSサイトのSSL化(XCL版)

XOOPS Cube以前、XOOPS2.0.16を使っていた当時に同名のタイトルで
エントリをあげた事があります
が、同じ方法ではXCLでは
SSL化できないようです。自分で調べてたら、ここいら辺り
「試したけどできない」と書かれていたので、備忘録がてら纏めます。
 

 
【現象】
XOOPS2.0.16でやったmainfile.phpをちょろっと書き換える方法では
画面が真っ白になってしまう。
 
 
【検証内容】
XUGJのXCLBasicManual-SSLログインページにて、2.1.7までは
SSLログインに必要なコードが抜けている可能性があるとの記述を見て、
その影響があるのかもしれないと考え、試しにXCL2.2 Pack2011
「SSLログイン」を試してみたが、やはり同様に画面真っ白に。
 
XUGJフォーラムであがっていた「SSLLogin.class.php」及び
SSLフィルタープリロードを試してみたが効果なし。
 
これは万策尽きたかな?と諦めて勉強会で質問しようと考えていたところ、
タイムリーにFBでSSL対応に関する投稿がっ♪
そこでnao-ponさんのSSL対応記事をご教示頂きました。
 
 
【検証結果】
早速、実験用にPack2011で構築したサイト等を、
nao-ponさんのSSL対応記事に従って修正してみました。
(SSLはレンタルサーバの共有SSLを使っています。)
 
1.サイト全体のSSL化
 問題なく対応可能。
 
2.SSLログイン
 ユーザモジュールでSSL設定を行ってSSLログイン機能を使うと、
 ログイン自体は成功するのだが、非SSLに切り替えるとログインできていない。
 セッション変数が違うから、当面はまるっとHTTPSでかこってしまう対応が
 良いとの有識者の意見アリ。
 
3.部分的SSL化
3-1.formmailモジュール
 SSLのアドレスを生成する際に、そのままだとHTTP_HOSTをもってきてしまう都合
 「www」がついて404になってしまうため、index.phpの$hostに代入された
 HTTP_HOSTからtrimを使って「www.」を除去。結果、正常動作を確認。
 
3-2.Ccenterモジュール
 モジュールにSSL機能がないので、MultiMenuで無理やりSSLアドレスへリンク。
 正常動作を確認。
 
3-3.両者の問題点
 一旦SSLのページへ遷移すると、TOPページやその他のモジュール等が
 SSLページへリンクされてしまう。MultiMenuで[bulletin]とかやっても同じ。
 MultiMenuでhttpからのフルアドレスを入れれば出来る。
 
 …と思っていたらMultiMenuやtheme.htmlなどで$xoops_dirnameで
 判定してreplaceをかければ良いとの有識者のご意見。
 なるほど!と思い、早速自分のサイトで試してみました。
 
 
  theme.htmlのhead部分で以下の変数を定義

<{ assign var="ssl_mdl" value="(SSLアクセスさせるモジュールのディレクトリ名)" }>
<{ assign var="ssl_url" value="(共有SSLのアドレス)" }>
<{ assign var="nml_url" value="(通常のアドレス)" }>

 
  TOPページへのリンク部分

<{if $xoops_dirname == $ssl_mdl}>
    <a href="<{$xoops_url|replace:$ssl_url:$nml_url}>">TOP</a>
<{else}>
    <a href="<{$xoops_url}>">TOP</a>
<{/if}>

 
  各モジュールへのリンク部分

<{if $xoops_dirname == $ssl_mdl}>
    <{$block.content|replace:$ssl_url:$nml_url}>
<{else}>
    <{$block.content}>
<{/if}>

 
  ※注意点
   $ssl_url定義時に末尾に「/」を付けるか否かはmainfile.phpを確認する事。
 
  【追記】
   3-3の対応を行った場合、formmailのSSL機能はOFFにしておかないと
   SSLアドレス部分がダブってしまうので注意。念のため記載。
 
 
【備考】
SSL接続しているページ内にhttpで画像等を読み込んでしまっている場合、
IEでは警告ダイアログが出て、google chromeではアドレスバーのhttps:のところに
斜め線が引かれる表示になる。chromeの場合、対策を行っても一旦chromeを
終了させないと記憶してしまって斜め線が消えない模様。
 
■参考サイト
》WEBシステム開発 技術的備忘録(通称 技忘録)
 
 
【謝辞】
対策の参考にさせて頂いたサイトオーナー様、ご意見を頂いた有識者の方々に
お礼申し上げます。
 
 

 


2 Comments + Add Comment

コメントする

*

2017年8月
« 7月    
 123456
78910111213
14151617181920
21222324252627
28293031  

Archives

Recommended