今でも数日に一度はサイトやブログを弄っている。
そう、すべてはより良いWEB体験のため!
というより、俺の自己満のため……(あれっ)
まあ、利用者が気付くレベルの変化はめったに表れないけど。
友人が髪を切ったことによく気付くタイプの人なら……
冗談はさておき、今回は、このブログがHTTPSによる接続に(たぶん)対応したって話と、むしろなぜ今まで対応してなかったのかって話を。
HTTPSとは
SSL(Secure Sockets Layer)やTLS(Transport Layer Security)によって暗号接続するプロトコルのこと。
これらはいずれも、WEBサーバーとクライアント(ブラウザなど)の間の通信を暗号化して行う規格だ。
大手のサイトのログイン認証や、ネットバンキングサイトなどの機密情報を扱うページで使われる。
こういうページはURLが「https」で始まっている。
一方、通常の(平文接続の)ページはURLが「http」で始まっている。
あなたが今見ているこのページのURLは「http」で始まっているのではないだろうか。
こんなブログに暗号化は必要ないもんね。
WordPressの仕様
ところが、我らがWordPress様(もしくはホスティングサービスのXdomain様)はこのページのURLの「http」を「https」に書き換えても、普通に表示しやがるのだ。
※メインサイトはHTTPSでアクセスされると「404 Not Found」エラーを返します。
いや、いいんだけど……無駄だけど……
これまで、このブログはSSLでアクセスされると不都合だったのだ。
ブラウザの仕様
いつからかFirefox(そしておそらく他のブラウザも)では、HTTPSなページの中にHTTPSじゃないリソース(CSSなど)が含まれていると、そのリソースをブロックするようになった。
つまり、CSSがブロックされるとページの表示に著しい影響が……
で、このブログではCSSはメインサイトと共通なため、メインサイト側のCSSを読み込む方式をとっていたのだが、メインサイト側でHTTPSが使えないため、URLは「http」を使っていた。
※Xdomainは画像の外部読み込みを禁止してるけど、CSSの外部読み込みは許容してるようだ。
この状態でブログにHTTPSでアクセスすると、上記の状況にバッチリ当てはまってしまっていたのだ!
つまり、文字は見えるけど表示がおかしい。
もう、やだなぁ……みんな……
さて、実際にこのブログがHTTPSでアクセスされてしまう状況が、故意の場合を除いてはたして生じうるのか、という疑問はさておき。
そして対応へ……
このままでは気持ち悪いので、対応できるものは対応することにした。
ブログ側をHTTPSによるアクセスを禁止にする方法もあるけど、やり方は見当もつかない。調べてもないけど。
解決法はいたって単純、共通のCSSをブログ側に置けばいい。
WorsPress内ではアクセスされたほうのプロトコルでPHPの出力を統一するらしいので、HTTPSでアクセスされた時はCSSのURLを「https」にしてくれる。
そして、メインサイトではブログ側のCSSを読み込むようにする。
メインサイトでは「http」のURLを指定しておけば、いつも問題なく読み込める。
やったねれいぶちゃん!
メインサイトの全ページを変更する手間はかかったけど。
まとめ
これからはこのブログもHTTPSでアクセスしても大丈夫!
実用上の意味があったかどうかは疑問だけど! ね!
……ニコニコのコミュニティのiframe(ページ右上のTwitterタイムラインの下の黒っぽい部分)を読み込まないことを除き(HTTPだから)。
まあ、いらないよね?
いや……こんな些細な問題に対処する手間をかけたくは、正直ない……
研究してみるか。
こめんと