28
2011
XOOPSサイトのSSL化(XCL版)
以前、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システム開発 技術的備忘録(通称 技忘録)
【謝辞】
対策の参考にさせて頂いたサイトオーナー様、ご意見を頂いた有識者の方々に
お礼申し上げます。
月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |