blogにHTTPSを適用する(MovableType設定編)

  • 投稿日:
  • by
  • カテゴリ:

Apacheの設定が終わって https://~でアクセスしてみたらエラーになりました。 確認すると「安全でない他のリソースが含まれている」というメッセージが表示されました。

MovableType(以下 MT)のページソースを見ると、「http://blog.still-laughin.com/」から始まる大量のURLがあります。 単なるリンクならいいのですが、ページの構成要素の読み込みで HTTP接続を使っていると、このエラーが起きるようです。 考えてみれば当たり前ですね。

でもMTの設定画面ではドメイン名は変更できても、「http://」の部分は変更できません。 これを解決してくれる「HttpsConverter」というプラグインがあるようです。

ただ、そもそも絶対URLを(再構築で生成した)静的なページに書くのはどうなんだ?という想いが以前からありまして、どうせなら相対URLにしてしまいたいと思います。

一部のブログをhttpsにしたい - MTQ | Movable Type ユーザーコミュニティ」を読むと、regex_replaceモディファイアを使うことで URLを置換できるようです。
たとえば、

<a href="<$mt:BlogURL encode_html="1" regex_replace="/^http:\/\/blog.still-laughin.com\//","/" $>">

とすれば、「http://blog.still-laughin.com/」を「/」に置換してくれます。

<script src="<$mt:SupportDirectoryURL encode_html="1" regex_replace="/^\/mt\/mt-static/","/mt-static" $>theme_static/rainier/js/html5shiv.js"></script>

とすれば、「/mt/mt-static」を「/mt-static」に置換できます。

スタイルシートも含めたテンプレートやウィジェットをくまなく見て、片っ端から egex_replaceモディファイアを挿入するのは骨が折れます。 間違えてスタイルシートを壊してしまって、昨晩から今朝まで CSSが適用されない醜態を晒してしまいましたが、なんとか完了したようです。

HTTPSで問題なく接続できることを確認したら、HTTPでアクセスしてきたものを mod_rewriteで自動的にHTTPSに変更するようにします。 ウチの場合は extra/httpd-vhost.conf の中に記述しています。

これで完了です。 GlobalSignSSL Server Testで確認してみましょう。

ssl_report.jpg

大丈夫そうですね。