XREAサーバでMovable TypeのSSLログインに挑戦

ようやくXREAサーバでMovable TypeのSSLログインを実現することができた。

事の発端は、こちらの記事
【重要】 第三者による不正アクセスを許す危険性の対策について
盗聴によるパスワードやCookieの漏洩からの不正アクセスを防止する(1)
に従い、管理画面のCGIスクリプトmt.cgiへのアクセスをSSL化(https)しようとしたことにあった。

このSSL化は、AdminCGIPathを単にSSLのアドレスに設定すれば良い筈だったが、これが見事に失敗。
調べてみると、使用してるXREAサーバの場合、共用のSSLサーバを経由しているため、なんか良く分からないが利用できないことが判明し、完全にお手上げ状態であった。

で、しばらく放置したままになっていたが、最近のネット犯罪の多さに挑戦意欲が再燃。
(とは言っても自分には知識がないため、単にネット上に落ちている情報をかき集めてコピペするだけだが・・・。)

ようやく次の記事に辿り着いた。
MT 3.17の問題点:AdminCGIPath, SSLサーバ( https プロトコル)
問題解決:MT 3.17と AdminCGIPath https+複数パス

しかし、この方法によると、自分が使っているサーバのローカルIPアドレスが分からないとダメだった。
さらに調べてみると、XREAのサーバでは、ローカルアドレスとして、
192.168.*.*
以外に
219.101.229.*
も存在するということだった。

結局、上のサイトを参考に、/lib/MT/App.pm の1125行目(MT-3.33-jaの場合)あたりの サブルーチン sub app_pathの

if ($path =~ m!^https?://[^/]+(/?.*)$!i) {
$path = $1;
} elsif (!$path) {
$path = ‘/’;
}

を次のように変更した。

if ($path =~ m!^https?://[^/]+(/?.*)$!i) {
if ($ENV{‘REMOTE_ADDR’} =~ /^192¥.168¥./ ||
$ENV{‘REMOTE_ADDR’} =~ /^219¥.101¥.229¥./) {
$path = ‘/ユーザーID.s*.xrea.com/path/to/MT_DIR/’;
}
else { $path = $1;}
} elsif (!$path) {
$path = ‘/’;
}

これでようやくSSLアクセスが実現したのだが、その代わりにプラグインが動かなくなったり、投稿ソフト(ubicast Blogger)が動かなくなったりと、別の問題がまた浮上してしまった。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする