chocolablog を ver 0.9 にアップデートしました
と言いつつ、今回のバージョンアップはリリース後にごたごたがあり、正確には hotfix 適応済みの ver 0.9.1 になります。そんな細かいことはいいですよね。もうそんなに機能拡張するようなネタもなく、安定運用フェーズに突入している chocolablog ですが、今回は SSL 対応という WEB でも比較的ホットな話題についてリリースすることにしました。ブログ記事を読んでくださるユーザーさんのみならず、ブログ記事を書くシステム管理画面まわりでは個人的にも必要だと思っていた機能です。
この開発の背景には、さくらインターネットがすばらしいサービスを開始してくださったことがあります。ありがとうございます。マジ感謝です。
ver 0.9 の追加機能
フロント側・SSL 対応
システム管理画面側
・記事欄とサイドメニュー欄の横幅を設定できるようにした
改修した不具合
・システム管理のコメント管理でコメントのチェックボックスが動作しない
SSL 対応
昔からしっかりとした商業サイト、特に個人情報や決済を扱うようなサイトでは、ユーザーの WEB サーバーへのアクセスを暗号化するため SSL が利用されてきました。ブラウザのアドレスバーの URL が https:// で始まるあれです。しかし SSL を導入するには自分のサイトの専用ドメイン(chocolapod.net 等)と、WEB サーバーにインストールする SSL サーバー証明書を買う必要がありました。これがレンタルサーバーを借りて個人サイトを運営するようなユーザーには敷居が高く、WEB 全体としては SSL 化の動きはまだまだ広まっていく途中の段階にあります。
そんな中、chocolablog が動作環境として想定しているさくらのレンタルサーバーで、SSL サーバー証明書を無料で発行してくれるというサービスが始まりました。条件としてさくらのレンタルサーバーで独自ドメインを利用している必要がありますが、これまで追加で購入する必要のあった SSL サーバー証明書を買わなくていいというのは、こじんまりと個人サイトを運営するようなユーザーにとってはとても助かるサービスです。
※正確には、SSL サーバー証明書を発行しているのはさくらインターネットではなくLet's Encryptという組織(認証局)です。Let's Encrypt は SSL サーバー証明書を発行して WEB サーバーにインストールしてくれる仕組みを用意してくれていて、さくらインターネットは自社のレンタルサーバーにそれを連携してくれています。ちなみにさくらインターネットは Let's Encrypt 自体のスポンサーもしているようです。
WEB サーバーはこのサービスにより暗号化されますが、WEB サーバー上で動く chocolablog のような WEB アプリケーションも SSL に対応する必要がありました。おおきくサイト上のリンクの URL を http:// から https:// に変更すること、そして http:// でアクセスされた場合には自動で https:// にリダイレクトすることです。もちろん chocolablog が SSL 対応していない WEB サーバーで動かされることもありうるので、この機能を有効にするかどうかはユーザーが選べるようにする必要があります。
自分でサーバー構築からするような場合にはそんなに手間のかかることではないのですが、さくらのレンタルサーバーではレンタルサーバー自体の仕様がよくわからないため、なかなか苦戦しました。
常時 SSL 化するためには http:// にアクセスされていることを WEB アプリケーションで検知する必要があります。普通 SSL アクセス時には環境変数 HTTPS が設定されるため、この環境変数の有無でリダイレクトすべきか判断するのですが、さくらのレンタルサーバーでは mod_rewrite を通すとこの環境変数 HTTPS 値が WEB アプリケーションまで渡ってこないのです。さくらのドキュメントには 'SNI SSLでは環境変数の扱いに一部制限があります( mod_rewriteの扱い等 )' と書かれていますが、具体的に何がどう違うのかよくわかりません。普通に構築した手元の開発用サーバーと動作が違うということに、リリース後に気づいたりすることが多々ありました。
結局のところ、https:// でのアクセス判定は環境変数 HTTPS ではなく環境変数 HTTP_X_SAKURA_FORWARDED_FOR をみるのがいいらしいという情報をみつけ、この環境変数を参照するようにしています。私が借りているレンタルサーバーでも、環境変数 HTTP_X_SAKURA_FORWARDED_FOR は mod_rewrite を通してもちゃんと渡されてきました。ただ、さくらインターネットが正式に公表していない仕様だとすると、将来的に変更されないか不安なところがあります。せっかく Let's Encrypt 対応までしてくれてるのに、もったいないですよね。この辺りの案内などもしっかりサポートしてくれれば、さくらのレンタルサーバーは満点だと思います。
ともかく、ターゲットとなるユーザーさんを個人サイトとしている chocolablog に、まさか常時 SSL 化の対応をする日が来るとは思っていませんでしたから、この場にはなりますが、改めてさくらインターネットさんにはお礼をさせていただきたいと思います(平伏)。
chocolablog 開発 コメント (0) 2017/11/27 19:51:00