はてなブログSSL対応問題が再燃してるけど


はてなブログはSSL対応するのかね

Googleからのお達しを受けて、はてなブログ界隈がSSL化を巡ってざわついているのを香ばしく眺めています。 サーバ屋的な観点から見ると、こいつらSSLの本質を何にもわかってなくて、SEOのためのツールのひとつくらいにしか思ってないんだろうなぁと感じられてしまうのが香ばしい理由なんです。まあはてなもSSL化を開発中ということでこちらはこちらで生暖かくウォッチしたいところです。 ただ断言してもいいけど、はてなブログのSSL対応は良くて「はてなブログPro」専用のオプションになるだろうし、もしかしたら別途課金が必要なオプションにならざるをえないだろうし、すでにProを利用していてしかも独自ドメインの人は別途証明書を買わないといけなくなるんじゃないかなぁと見立てています。 これははてなブログの構造的な理由に起因するし、ましてや無料のユーザにまで適用できるほど手軽な機能じゃないからですね。それにも関わらず、「はてなは早くSSL対応を(無料で)しろよ」という雰囲気を感じざるを得ない状況に失笑を禁じえません。「詳しくないからよくわかんないけど、対応しないとやばいらしいよ」って言っても、なんら免罪符にならねぇって。

そもそもSSLの機能は暗号化だけじゃないって何度言えば…

別に何度も言ってないけど、よくSSLって要は暗号化通信のことでしょという勘違いはよく見聞きします。ところがこの考え方は不正確で、SSLの3大機能は「なりすまし」「盗聴」「改ざん」を防ぐことにあります。暗号化通信により防げるのは「盗聴」と、しいて言えば「改ざん」までです。 はてなブログを使ってるユーザって、SEOに対する意識が強いという勝手な印象があるけど、SEO的に意義が大きい本質的なところは「なりすまし」を防ぐための措置が講じられてるからじゃないかと思います。「暗号化されてるから偉い」のではなくて、「そのURLで提供されているコンテンツが別の人によるなりすましではないことが担保されてる」のでSEOに有利だというのが本義なんじゃないでしょうか。まあGoogleとかがどう考えてるのは知らんけど。

SSLサイトの管理ってなにげにめんどいのよ

サイトをSSL化するためにはそもそもSSL証明書の発行を受けなければなりません。無料のものもありますが、特に企業がサービスとして使う場合は基本的に有料のものを使います。しかも証明書には必ず有効期限があり、現在でも最長は3年3ヶ月、来年以降は2年に短縮されると言われています。なので定期的に更新の作業が必要になりますし、特に複数のサーバで運用されているような場合は全て更新しないといけないので、それなりに大変な作業です。 また最近はあまり言われなくなりましたが、証明書の種類によっては一部のブラウザや端末では証明書の検証が行えず表示ができないという問題が発生します。だいたいは古いブラウザやガラケーだったりするのでそこまで致命的な事態は発生しづらいですが、一応想定はしなければなりません。(もはやSHA-1の証明書が絶滅しつつあるので、そこまで考えなくてもいいだろうけど)

あとは特にPVやトラフィックが多い場合、サーバの負荷増加に対する懸念というのも少し考えておきたいところ。今どきのサーバだったら大した差はないとか、SPDYやHTTP/2に対応してればむしろ負荷は下がるなんていう話もありますが、それなりに検討・検証が必要というのは事実です。

はてなブログの証明書管理は面倒くさそうだなぁ

はてなブログの場合は、ユーザ名がサブドメインに入るので証明書の選択としてはグローバルサインかジオトラストあたりのワイルドカード証明書になるだろうと想像します。証明書種別としてはOVですかね。 はてなブログのサーバ環境を調べてみると、AWS上に構築されていることはわかりますが、FQDN(≒ユーザ名)によってIPアドレスが違うことがあります。アジアパシフィックの東京リージョンっぽいですが、どういう単位でIPアドレスが別になるのかはちょっと謎。単なる開設時期によって順に割り当ててるだけかなという気もするけど。 認証やユーザ管理は他のサービスとの絡みもあって単一の仕組みで動いているけど、はてなブログは巨大な単一のシステムではなくて、複数のブログシステムが内部的には並列に存在していて、ユーザ単位でそれを振り分けているのではないかと思われます。ということは証明書の管理もそれぞれのシステムごとに行わないといけないのでそれなりに面倒くさいです。このユーザ名をサブドメインに使うっていうアイデアは、雑なDNSロードバランスなんじゃないかという印象があります。大きなメリットははてなブログ全体がサービスダウンするような可能性を排除しやすいというのはあるかもしれません。SPOFになるようなDBとかネットワークがやられるとダメだけど。 アメブロなんかはIPアドレスがひとつで、おそらくリバースプロキシでユーザごとにサーバ等を振り分けているんだと思いますが、こっちの方が証明書を管理する場所はだいぶ限られるのでもう少し楽です。かつてのはてなダイアリーの時代もこういう方式だったと記憶していますが、はてなブログがどうしてこういう仕組みになったのかはあまり語られません。SSL対応が遅れてる理由っていうのも、この辺りに存在する「技術的負債」なんじゃないかと思ってみたり。 ちなみにはてなと同じくユーザ名がサブドメインになってるエキサイトブログは、ざっと確認した範囲ではどんなサブドメインであっても同一のIPアドレスを返します。Microsoft Azureを使ってるようなので、それの力でSSL化を近日実現ということなんでしょうね。

さらに独自ドメインのユーザの場合どうすんのかね?

はてなブログが一部ブロガーに人気な理由のひとつに、Proにすれば独自ドメインが使えるというのがあります。しかしこれがSSL対応という観点では大きなネックになります。なんせSSL証明書はFQDN単位で発行されるので、独自ドメインのユーザは「.hatenablog.com」の証明書を使うことができません。ここのところのサービス設計をどうするのかは興味深いところです。 ロリポップみたいにLet’s Encryptの無料証明書を利用できるようにするという手もありますが、ビジネスモデルやサーバ構成が違うため一筋縄では行かないんだろうなという感じはします。俺だってたまに証明書更新してgracefulする時に設定ミスってて失敗するとかやらかすことあるもん。 あるいはユーザ自身に証明書を用意させるというアプローチもあるけど、冗長構成の場合にその台数分だけライセンスが必要な証明書を持ってこられたらどうするのかってのも問題でしょうねぇ。

Googleからのお達しが改めて来て「DVよりOVの証明書の方がSEO有利にするわ」とか言ってきたら爆死するユーザが出ると面白いですね。まあそれでも非SSLよりはマシなんでしょうけど。

というわけではてなブログ開発の皆さま、がんばってください

元々SEOに強いという都市伝説のあるはてなブログにおいて、SSL対応は十分に金の取れる付加価値だと思うんで、是非がんばっていただきたいものです。Googleが期限として言ってきた2017年10月まであまり時間はないですけど。個人的にははてなはダイアリーの時代に使ってて、今はもはや幽霊ユーザで、別に株主でもなんでもないですが、心中お察ししながら応援しております。 あ、あとはてなブログ以外のサービスのSSL化も検討してもいいんじゃないでしょうか。Mackerelとか最近のサービスは最初からSSLだけど(企業への売り込み考えると、SSLじゃないとダメだが)、はてブとかもがんばっていただきたいものです。はてなカウンターをサービス終了したりとか、増田をSSL化したりとかっていうのは、そういう下準備なんだろうなと思ってます。

はてなブロガーの皆さまにおかれましては、あまり開発チームを追い詰めないでいただきたいですし、有料オプションという形で発表されてもキレないでいただきたいものです。世の流れだからという言い訳でサービス向上を要求するのはなんかブラック顧客感があってなんだかなぁと思ってしまいます。またもうちょっとSSL運用の大変さをお察しいただけると、システム管理者の一人としてはとても嬉しい。

なおこのブログはどちらかというと動かすことが目的ということもあり、証明書は手抜きでLet’s Encryptだけど、SSL化してみたりHSTS対応やHTTP/2もできてたりします。本当はWordPressの管理画面だけクライアント認証とかやりたいんだけど、面倒くさくて未着手。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*