どうも、ジャム君です。
アニメティップ情報館は開設当時からほとんどの期間、SSL証明書を使ったURLがHTTPSから始まるサイトになっています。
今もそれは変わらずで、アニメティップ情報館が管理しているどのページにアクセスするためにもURLの頭がHTTPSというもので始まっています。
これって、「アニメの解説や考察、また感想を読みに来るだけだったら関係ないんじゃないか」と思われるかもしれませんが、それは大きな誤解というものです。
URLがHTTPSではなくHTTPで始まるサイトがどれほど危険か、また最近流行りのCloudflareに潜んでいる危険に気づいているか、休憩がてらに読んでいってください。
HTTPとHTTPSの差
URLがHTTPSで始まらないサイトとHTTPSで始まるサイトとの大きな違いは、そのサイトとの通信が暗号化されているか否かです。
今だと、HTTPSで始まるサイトは鍵のマークが表示されていますよね。
これはサイトを見ている人とサーバー(閲覧者へ文章や画像の送信、コメントや問い合わせ処理などを行う場所)の間でSSLと呼ばれる暗号化がされているかどうかという点で、SがつかないHTTPで始まるのか、SがしっかりとつくHTTPSで始まるのかが変わってきます。
SSLの暗号化がなされていればアニメティップ情報館のようにHTTPSで始まりますが、暗号化がなされていないとHTTPだけで始まってしまうわけです。
最近だとGoogle Chrome 68(パソコン版)からはHTTPSから始まらないサイトを開くと「保護されていない通信」と表示されるようになっており、GoogleもSSL通信を推奨していることがわかります。
より安全性の確認が必要かつ確認も取った上で暗号化されている法人運営主体の大規模サイトは、そのままであると予想されます。
ただ、暗号化がどうだと言われても、あまり困らないように感じますか?
実は暗号化技術は超重要!
まず、SSL証明書を発行して利用しているアニメティップ情報館では、皆さんが使っているスマホやパソコンと、ジャム君が利用しているサーバー間で、データが盗み見られてしまう可能性が激減します。
ショッピングをするようなサイトではないので、たとえ盗み見られてしまったとしても被害は最小限に留められはするのですが、コメントや問い合わせの利用時にメールアドレスを入力した際、本来ならば見られないはずなのに、盗み見られてしまうかもしれないんです。
ただし100%解読不可能な仕組みではないため、無駄な労力を惜しまないのであればやってやれないことはないです。
ですが相当な時間と資金を要してしまうため、現実的ではありませんね。
そんなところに労力を使うのであれば、もっとお金になるような時間と資金の使い方をするのが普通でしょう。
そのためURLがHTTPSから始まるサイトなのであれば、データが盗み見られてしまうリスクはほぼないと思っておいていいです。
ですがHTTPだけから始まるサイトは危険!
SSL証明書がなく暗号化もされていないデータのやり取りをしているため、悪者が通信を覗き見たらまるまるデータが見えてしまうんです。
個人情報流出を極力避けたいのであれば、アニメティップ情報館のようにHTTPSから始まるサイト以外にはアクセスしないよう心がけたいですね。
暗号化がされていないとまだリスクがある!
これだけではなく、SSL証明書を使った暗号化がなされていないと、まだリスクが残っています。
それがデータの改ざんやサイトのなりすましです。
暗号化がなされていないサイトの中に設置されている検索ボックスに文字を入力して検索したのに、こっそり改ざんされて違う結果が表示されるということもあり得ます。
これは送信した文字をそのままの状態(平文)で送っているため、悪意ある人が割り込んでくると文字が任意のものへ簡単に書き換えられやすいのです。
たとえば「こんにちは」と送信したはずなのに「こんばんは」と送ったことにされる、といったイメージですね。
また実はアクセスしているサイトが、別のなりすましたサイトで、こっそり個人情報を収集しているかもしれません。
アニメティップ情報館では導入が不可能なのですが、銀行のホームページを利用すると、アドレスバーの部分に企業名が表示されることが多くありませんか。
あれは上位のSSL証明書でEV SSL証明書と呼ばれており、実在する企業が何日もかけて承認を受け導入をする必要があります。
しかも個人レベルでは導入できないため、大企業向けです。
(それ故にお高くもあります)
もしジャム君が銀行そっくりのサイトを真似して作っても、HTTPから始まっていたら警告が出ますし、HTTPSから始まっていても表示結果が違うため、よく似た偽サイトを作られてもより本物と見分けが付きやすいというわけです。
いずれも個人レベルでは「完全に」というのは無理なのですが、SSL証明書を使ってしっかりとHTTPSから始まるサイトにしているのであれば、その驚異にさらされる心配を大きく減らすことができます。
「サイトを見ているだけだから関係ない」と思っていると、大変なことにもなりかねないのが怖いところなわけです。
流行りのCloudflareは実は危険
最近、サイトを立ち上げている人の中では流行りになっているCloudflareというサービスがあるのですが、このサービスは危険も伴います。
本来は多くの基本サービスが無料で利用でき、サイトの表示速度を上げることもできる素晴らしいサービスでもあるのですが、ことSSL証明書に関してはお金を払わないとダメです。
無料で使っていくこともできるのですが、そのようなサイトはこのような証明書の内容で通信を行うことになります。
これはCloudflareを使っているとあるサイトのSSL証明書の中身なのですが、1つのサイトではなく、いくつものサイトが同じ証明書を使っています。
HTTPSのサイトにはなりますし、基本機能としてはデータを盗み見られることもなく、ないよりマシなのですが、これはいけません!
Cloudflareの無料SSL証明書は何が問題なのか
Cloudflareで利用できる無料のSSL証明書は、多数のサイトが同じ証明書を使ってしまうため、共用SSLと呼ばれています。
一方でアニメティップ情報館で使われているような、そのサイト専用のSSL証明書は、独自SSLと呼ばれています。
まず共有SSLでは独自ドメイン(アニメティップ情報館ならば[anime-tip.com])が利用できないため、サイトのURLと証明書に書かれた「どのサイトを認証しているのか」の基本情報が一致しません。
中身をよく見ていけば、たくさんのアドレスの中にサイトのURLを発見できるのですが、簡易的に見たら偽装されたサイトに見えてもおかしくありません。
共用SSLのデメリットを解決するためには独自SSLをCloudflareで利用すればいいのですが、基本無料で利用できる範囲を超え、月額料金がかかってくるため、先の画像のようなサイトは「ケチっている」というのが丸わかりになるわけです。
はっきり言って、そういうところに無頓着、ケチるような運営者がいるようなサイトは、個人情報もどう扱っているのかわかったものではありませんので、近寄らないのが吉です。
SSLボックスのような業者で発行してもらうSSL証明書の持ち込みは、CloudflareのFreeプラン非対応になっており、利用時にはBusiness以上のプラン選択が必要になります。
そもそも独自SSLでも、アニメティップ情報館のような個人サイトの多くでは「SNI SSL」と呼ばれるSSL証明書の利用方式を採用していますが、Cloudflareの無料SSLはその劣化版です。
SNI SSLが悪いのではありませんが、SSL証明書を開いて、すぐに「そのサイトを証明している」ことがわからないことが、Cloudflareを完全無料で利用する際に起こるデメリットになってしまうわけです。
あ、ジャム君はCloudflareもいいと思うのですが、AmazonがやっているCloudFrontもいいかな~と思ってはいます。
今はまだ必要なさそうですけどね。
Cloudflareを利用するとしても、SSL証明書は別途お金を払って用意するつもりです。
HTTPSで始まっているサイトでも簡単に信用できない
最近のサイトだと無料で使えるSSL証明書が普及してきたためだいぶ減っているはずなのですが、結構前からCloudflareを利用しているサイトや、Google Chromeの警告表示に合わせて慌ててCloudflareを導入したようなサイトでは、たとえアドレスバー上ではHTTPSで始まっているサイトでも簡単には信用できません。
その理由が通信の仕組みにあります。
通常、CloudflareといったCDNと呼ばれるサービスを利用しないアニメティップ情報館のようなサイトであれば、次のような接続方法です。
ユーザー⇔サーバー(サイト)
しかしCloudflareのようなCDNサービスを利用すると、接続方法がやや変わります。
ユーザー⇔Cloudflareサーバー(CDN)⇔サーバー(サイト)
つまりCloudflareでHTTPSにしたように対応したように見せかけることで、実は本来アクセスされるはずのサイトはHTTPのままで丸見え通信のままでした、という可能性もあるのです。
危険な例
ユーザー⇔Cloudflareサーバー(CDN)⇔サーバー(サイト)
サイトの中をより入念に確認すれば防ぎやすいものではありますが、とくにスマホからのアクセスでは面倒です。
全Cloudflare利用サイトが危険なわけでもありませんが、危険なまま放置されているサイトも中には存在してしまっているというのを忘れてはなりません。
Cloudflare利用によりサイトの表示速度が遅くなるデメリットも
先ほども示したように、Cloudflareを利用すると、このような通信を行います。
ユーザー⇔Cloudflareサーバー(CDN)⇔サーバー(サイト)
必要なデータすべてがCloudflare上にキャッシュされていれば、自サーバーへのアクセスが毎回行われることはありませんのでサイトの表示速度低下は最低限となりますが、とくにWordPressのサイトだとそうもいかず。
もしもCloudflareに必要なデータすべてがキャッシュされているのであれば、
ユーザー⇔Cloudflareサーバー(CDN)
このような経路で通信を行うことになります。
WordPressだとなかなか難しいのですが、前者の場合サイトの表示速度が低下します。
せっかくCloudflareを導入しても表示速度が低下してしまうのは、運営者としても見に来る側としてもデメリット!
その理由としてHTTPSで始まるSSL通信を正常に行っている場合、2回証明が必要になるからです。
Cloudflareってサイトの表示速度を上げたい人が多く使っているのですが、本末転倒ですね。
デフォルトでキャッシュされるファイルと、サイト配信に必要なファイル、キャッシュすべきファイル・するべきでないファイル、理解していないとCloudflareのみならずCDNは危険です。
中でも「無料」が売りのCloudflareは利用者も多く、知識がまだ少ないサイトの小さなころから容易に導入できてしまうため、考えなしに導入するのは危険と言えます。
ジャム君も偉そうに言えるわけではありませんが、初心者ブロガーも多く利用しているため、「やけに、もっさりしたサイトだな」と思ったらCloudflareを利用していたなんてこともあるわけです。
転送量だけに目をつけるのは危険
中にはサーバー転送量上限目安の関係で使っているサイト運営者もいるのですが…
サーバー転送量の関係で利用している場合、小規模サイトほど運営者がサーバー代をケチっています。
導入を検討中ならば、考え直す時間も必要です!
たとえばジャム君が現在使っている、エックスサーバーのX10プランだと、1日900GB目安まで転送してもらえます。
転送量が1日900GBを超えると、エックスサーバー側から処理速度を絞られたり強制解約になったりしてしまうため、CDNサービスのCloudflareで配信データを分散させるといった形ですね。
サイトが大規模になるほど転送量ではなく、1度に集中してアクセスが集まるため表示速度低下が発生してしまうのですが、ここでもCDNを使って配信データを分散させることは可能です。
大規模なサイトで運営資金が潤沢なら、Cloudflareではなく、CloudFrontやAzureを使いそうなものですが。
サイトを見に来ている人からしたらサイトを運営する我々の内情など知る由もありませんが、利用しているサーバー業者から警告等がくるような使い方をしてCloudflareに頼るくらいなら、プラン変更で転送量アップやCPU・メモリ対策を練るほうが得策でしょう。
どうしても利用中の業者で対応が不可能なら、サーバーのお引越しも視野に入れる必要がありますね。
お引越しするならば、利用時間単位の課金な上に、2020年3月の計測時に第2位のサーバーに速度で2倍もの速さを叩き出し国内最速を獲得した、ConoHa WINGがおすすめです!
1時間2.2円(税込み)から利用ができますし、一番安いベーシックプランでも転送量目安が月27TBですので、1日900GB(1か月30日換算)利用できる計算です。
アクセス増減が激しいサイトであれば、知識が必要になりますが、VPSで快適ライフにする手もありますね!
もちろん、ジャム君がこのサイトを運営しているエックスサーバーも48コア96スレッドCPUの512GBメモリというモンスターサーバーを提供しているレンタルサーバーです。
ConoHa WINGとはまた違ったテスト方法で2020年2月にサーバー速度1位を獲得しているため、転送量で見ても仕様で見ても、ConoHa WINGに負けず劣らずになっています。
WordPress爆速化は難しい
Cloudflareは、デフォルトの設定でPHPファイルやHTMLファイルなどをキャッシュしないため、WordPressを利用しているとどうしても自サーバーにアクセスがあります。
0円から始められる格安サーバーも出てきていますが、あまり安いサーバーだと処理能力も低く、いくらCloudflareを使ったところで、処理に時間がかかります。
また毎回DBファイル(データベースファイル)にアクセスする必要が出てくるため、そもそも動作が遅い設計のCMSです。
静的ファイルと動的ファイルと呼ばれるものなのですが、Cloudflareでキャッシュしておくのはあくまでも静的ファイル。
動的コンテンツとして作られる仕様のWordPress(見る人によって表示が異なる)だと、静的コンテンツとして作られた簡素なホームページ(見る人が異なっても表示が同じ)より表示に時間がかかります。
たとえば、広告であったり人気記事のランキングであったり、PCとスマホ向けページに差があったり。
動的コンテンツならでは簡単にできることもありますが、Cloudflareにキャッシュさせ、爆速化するとは限らないのです。
このアニメティップ情報館は、WordPressで作られた動的コンテンツですので、たとえCloudflareを使ったところで、高速に表示できる範囲は限られてしまいます。
Cloudflareはエラーが多い
有料のCDNに比べて、Cloudflareはエラーを引き起こしサイト閲覧や管理ができなくなるデメリットがあります。
もちろん有料のCDNでも起こり得ることなのですが、Cloudflareを使っているサイトは、ちょくちょく「502 Bad Gateway」でつながらなくなります。
せっかくCDNで負荷を下げようとしていても、見ようと思っていた情報が見られない、正常な管理ができないとなれば、障害が長く続けば続くほど不利です。
「無料だから仕方がない」と割り切れるのであればいいですが、貧弱すぎる転送量のプランやサーバーが問題でCloudflareを使おうとするのであれば、考え直すべきです。
エックスサーバーやConoHa WINGに乗り換えれば、大反響なサイトでないなら突然のバズを除けば十分耐えられるでしょう。
そんな大繁盛サイトならばそれなりの収入があるでしょうから、CloudflareではなくAWSにあるCloudFrontのような有料CDNで安定しているものを検討するほうが懸命です。
有料のCDNでもエラーが出るときには出る
有料のCloudFrontやAzureを使えば「Cloudflareと違いノーエラーで過ごせるか」というと、そうでもありません。
いかにCloudFrontやAzureが大手の法人にも広く利用されている実績があるとはいえども、エラーを起こしてダウンするときにはダウンします。
IT系のニュースを見ていらっしゃる方はご存知でしょうが、CloudFrontも障害を起こし、スマホアプリや官公庁ホームページなどにも影響を及ぼしていることがある状況です。
褒められたことではありませんが、「有料だから大丈夫」というわけでもないのは理解しておくべきでしょう。
Cloudflareは配信元が最寄りサーバーとは限らない
Cloudflareのメリットのひとつとして、キャッシュサーバーが世界各地にあり、日本にも「東京」と「大阪」にサーバーがあることで知られていますが、日本の東京近くから通信したとしても、Cloudflareでは「必ずしも配信元が最寄りサーバー」とは限らないデメリットがあります。
この例の場合、大阪のサーバーから配信されるのであればまだマシですが、シンガポールのサーバーやアメリカのサーバーから配信されてしまう可能性もゼロではありません。
データが配信されるサーバーが遠ければ遠いほど、閲覧時に時間がムダにかかってしまうため、Cloudflareはデメリットの温床とも言えるでしょう。
Cloudflareで最寄りの配信元サーバーからデータを届けたいのであれば、「グローバル負荷分散(地理別ルーティング)」というオプションを利用するのが懸命で、月10ドルの費用が必要になります。
Cloudflareでどのサーバーから配信されているか確かめる
Cloudflareでどこのキャッシュサーバーから配信されているか確かめるためには、次の方法が使えます。
確認したいサイトのドメイン/cdn-cgi/trace
仮にアニメティップ情報館がCloudflareを使っているのであれば、
anime-tip.com/cdn-cgi/trace
とアドレスバーに打ち込んで、結果を見ればどこのキャッシュサーバーから配信されているかがわかります。
出てきた結果の中で大切なのが、「colo」と「loc」です。
まずは、「loc」が必ず「JP」になっていることを確認しましょう。日本国内にあるキャッシュサーバーから配信されている証になります。
そして、「colo」を見れば東京か大阪かどちらか判明し、「NRT」は東京、「KIX」は大阪のキャッシュサーバーから配信されていることがわかります。
CloudflareとPhoton(サイトアクセラレータ)
ここまで話してきたCloudflareも、WordPress利用者ならば多くの方が使っているJetpack付属機能のサイトアクセラレータ・旧Photon(フォトン)も、CDNです。
Jetpackにも有料機能はありますが、サイトアクセラレータはもともとSSL通信に対応しており、何よりJetpackのダッシュボードから機能をオン・オフするだけで利用も停止も使い分けられます。
注意点として、サイトアクセラレータ(Photon)にはキャッシュの削除機能がなく、原則としてキャッシュされたらJetpackのサイトアクセラレータ(Photon)サーバーに残り続けるところです。
そのため同名の画像ファイルを、一度メディアライブラリから削除してアップロードしても、正常に反映されないことが起こってしまうわけですね。
Photon(サイトアクセラレータ)と他CDNサービスは同時に使う意味なし
簡単に使えるCDNサービスということでサイトアクセラレータ・旧Photonを使い続けている方もいるかもしれませんが、もしCloudflareやCloudFrontなどといったCDNサービスを利用するのであれば、同時に使う意味はありません。
「画像の転送量を削減して、少しでもCDNの利用料を抑えたい」というのであれば意味があるかもしれませんが、小規模サイトならばCloudflareのアドオンを使わずとも十分でしょうし、そこまでの費用はかかりません。
中規模以上のサイトを運用しているのであれば、それなりに広告収入もあるのでしょうから、あまりにケチりすぎると表示に時間がかかったままです。
そもそもサイトアクセラレータ(Photon)はWordPress.comが運営しているCDNで、いわゆるWordPress公式のCDNサービス。
一方Cloudflareは、WordPressでよく使われてはいますが、公式のサービスではなく、サービス自体がダウンしてしまうこともあります。
最近ではサーバーダウンもだいぶ減ったようなのですが、仮にPhotonで画像をキャッシュしていても、Cloudflareがダウンしてしまったら、サイトは表示されず画像も転送されません!
サイトアクセラレータは公式サービスだけあって、ほぼほぼダウンせず使うことができる代わりに、CloudflareといったCDNサービスと比べてしまうと、表示速度が遅いです。
つまり、Cloudflare利用者がサイトアクセラレータ(Photon)をオンにしていると、画像転送が遅い上に、Cloudflareサーバーダウン時には役に立たず、いいことなどほとんどないということになります。
使うならば、どちらか一方のCDNということですね。
SSL対応サイトではPhoton(サイトアクセラレータ)の意味がさらに薄い
HTTPSに対応しているSSL対応済みのサイトで、HTTP/2という技術やQUICという技術に対応しているサーバーを使っているのであれば、サイトアクセラレータ(Photon)を使うとメリットが薄れます。
というのも、HTTP/2やQUICは「同一ドメイン」からのやり取りが高速になる技術であるため、CDNで別ドメインを使うことになるサイトアクセラレータ(Photon)は、サイト表示を遅くする要因にもなりかねません。
CDNサービスとしての速度自体は維持していますが、せっかくHTTP/2やQUICが使える環境にあるのならば、よほどのこだわりがない限りサイトアクセラレータ(Photon)の使用は控えたほうがいいでしょう。
Let’s EncryptからCoreSSLに証明書を変更
ジャム君が利用しているエックスサーバーで取り扱いのある証明書として、無料で使えるLet’s Encryptという証明書は、ほかのサーバーでも利用できる場所が増え、独自SSLというメリットも持っています。
ただ2018年6月末のメンテナンスで、CoreSSLの証明書に入れ替えをしました。
理由ですか?
Let’s Encryptだとありふれてる感があるから。
無料サービスですがLet’s Encryptも急なサービス終了ということはないでしょうし、そのまま使い続けてもよかったのですが、ちょっと様子見。
別に証明書が変わっただけで、性能が上がるようなことはありません。
一応、2018年6月下旬からCoreSSLはサイトシールと呼ばれるものに対応はしているのですが、アニメティップ情報館はサイトの構成と証明書申し込みの都合上、サイトシールには今のところ未対応です。対応完了させました。
コモンネームと同一でないと、処理されません。
恐らく他社でも挙動は同じと思われますが、詳細はご利用のサーバー会社にお問い合わせください。
ちなみにLet’s Encryptのときは、こんな感じの証明書でした。
最初にCoreSSLに変更したときは、こうなっていました。
CoreSSLはLet’s Encryptと違い、有料のSSL証明書なのがデメリットですが、3か月更新ではなく最低1年更新なので、来年まではエックスサーバーを使い続ける限りCoreSSLの証明書を使い続けられますね。
エックスサーバーからほかのサーバーに移転させるとなると、持ち出しはできないので、使えなくなっちゃうのはもったいないところでしょうか。
Let’s Encryptは3か月更新ながら自動で更新してくれ、さらに無料で使えるメリットはあるのですが、たまに自動更新失敗していることがあるので、うっかりするとサイトにアクセスできなくなっているんですよね……
さいごに
アニメティップ情報館で解説や考察、また感想を楽しみにしてくださっている方は、どうぞ安心してください!
しっかりと情報は守ってあります。
今でも平気で問い合わせフォームにもHTTPSで始まらないサイトを運営している管理者は、ジャム君からしたら信じられませんね。
特に企業レベルでSSL非対応のサイトを見つけてしまうと、信頼して見ることなどできません。
一応あえてSSL非対応にしておいて、問い合わせフォームといった個人情報を扱うページだけSSL対応させるという手段もあります。
これは正当な手段なので、今後どういう形がスタンダードになるのかはわかりませんが、問題はありません。
また古いパソコンやガラケーにも対応しやすいメリットもあります。
ほかにも、せっかくCloudflareを利用しているのに、共有SSLを利用している信用度の低いサイトは、本当にSSL化されたサイトなのか確認が手間なので、ケチらず独自SSLを使ってほしいものです。
そこにお金をかけるようなサイトならば、元のサーバー側もSSL証明書が適用されSSL化されていることがほとんどです。
(100%とは言いませんけどね)
何でもかんでも金をかければいいわけではないのですが、少なくとも安心して利用できる程度には整備したサイトを用意してお待ちしておきたいですね。
コメント
補足です
HTTPS 通信がされていること自体は確認可能です。
Tlsモジュールを複合化という事です。
サイト改ざんとhttpsモジュールは関係ありません。
あくまで暗号化方式なだけです。
なのて、サイト改ざんのリスクは接続元の環境によるのです。
偽装電波などをキャッチしてしまうと影響を受けやすいのです。
https://git.nogafam.es/deCloudflare/deCloudflare/src/branch/master/readme/ja.md
中間者問題とその他の倫理問題は上のサイトが詳しく載せてます。
Cloudflareの無料プランでもNginxやApacheといったミドルウェアでssl,tlsを処理することでhttpsでの暗号化に対応していますよ。