こんにちは。SREチーム エンジニアの西脇(@yasuhiro1711)です。今年4月ウエディングパークはサイトを一部HTTPSから完全HTTPSに移行致しました。移行したことによって、より安心してユーザにもサイトをご利用頂けるようになっております。
完全HTTPS化(常時SSL/TLS化)プロジェクトを実施した4月よりもますます常時SSL化はwebサービスには必須になってきておりますゆえ、その必要性と必要作業について書きたいと思います。
完全HTTPS化(常時SSL/TLS化)が必要な理由
完全HTTPS化(常時SSL/TLS化)はなぜ必要なのでしょうか、弊社では主に以下のように考えました。
1, セキュリティ向上、盗聴やなりすましを防ぐ
HTTPでは誰もが簡単に通信の盗聴やなりすましが可能です。世間でもこの問題は大きな問題となっており、Googleを始めとした企業やセキュリティ団体などから通信にセキュリティが確保されるHTTPSの利用が推奨されるようになりました。
ログインや問い合わせや投稿フォームなどの入力ページ等の一部をhttpsにするだけでなく、すべてのページをSSL/TLS化にすることでcookieへの不正アクセスを防止することが可能になり、ユーザをセキュリティリスクの脅威から守ることが可能です。
2, 完全HTTPSサイトをSEOで優遇する
Official Google Webmaster Central Blog: HTTPS as a ranking signal
最初にこれに関する発表がされたのは、2014年8月のことでした。セキュリティ向上が課題のGoogleは自社サービスだけでなく、Google検索を通じた世の中のすべてのサイトもセキュアにしていくことを方針とします。
その後、2015年からGoogle検索にて本機能は実装され、HTTPSサイトであることが検索ランキングに良い影響を与えることとなっていきました。当初はHTTPSであることがどれだけ影響するかは疑問視されていたところもありましたが、今では常識になりつつあります。
3, Google Chrome、Firefox等、各種ブラウザでHTTP接続への警告強化機能が続々
画像引用:Google Online Security Blog: Next Steps Toward More Connection Security
Firefoxが2017年3月に、 Google Chromeが2017年10月(Google chrome 62)より、それぞれ、HTTPで接続した場合、アドレスバーで警告が表示されるように変更されました。これによりユーザの閲覧においても、「このサイトはセキュリティに不安があるサイトなんだ」と認識がされるようになります。ブラウザ側からもHTTPの非推奨、早期のHTTPSへの移行というのが、強制されてきています。
4, HTTP/2を合わせて導入することで高速化が見込める
セキュリティの理由からHTTPSが推奨されはじめた話をしてきましたが、その中で登場したすごい技術があります。それがHTTP/2です。私はこれはwebの歴史の中で初めてくらいの「インターネットが進化する」ことができる技術だと思っています。これまでは、「HTTPSは遅い」という常識みたいなものがありましたが、HTTP/2を利用することでHTTPSは高速にすることが可能です。以下のサイトをご覧ください。
HTTP vs HTTPS — Test them both yourself
https://www.httpvshttps.com/
このサイトを見ていただくとHTTPSがより高速化されていることが実感できると思います。HTTP/2では、サーバとクライアント間で行われる応答の仕組みが変更されたため、普通はオーバーヘッドとなる暗号化のやりとりを入れても全体で見ると高速での通信が可能となるわけです。
この辺りの詳細は、パフォーマンス向上のためのデザイン設計の付録にて書かせて頂いておりますので見ていただければと思います。
5, HTTPSデフォルトなサービス仕様が次々と
iOSアプリでの通信や、WebPushなども、今ではHTTPSがデフォルトです。今後の様々なサービスやツールでHTTPSは必須となってゆくでしょう。
以上のようなメリットや時流などもあり、弊社でも常時SSL化(完全HTTPS化)を進めることとなりました。しかしながら、今回は最初からHTTPSで始めるサイトではありませんから、お話したメリットを得るための移行にはもちろんリスクもありました。主なリスクで言いますと以下がありました。
リスク1, SEO的にHTTPからHTTPSの移行期間がどうしても発生する。
移行期間はどうしても発生します。これには検索エンジンへの通知や連携をサーチコンソール等でしっかりと行う必要があります。ここで手順を間違ってしまうと、SEOの順位ダウンにもつながります。Googleなどのコンソールでは、これに特化した手順も解説されているため、それを参照して進めて行けば間違いないでしょう。
参考:HTTPS でサイトを保護する – Search Console ヘルプ
リスク2, リファラーの受け渡しの影響が発生する
完全HTTPS化(常時SSL/TLS化)すると、HTTPSからHTTPにリファラーを受け渡さない仕様となります。暗号化しているものを平文に渡さない仕様というのは考えてみればたしかに当然ですよね。
画像引用:常時SSLはするべき!?メリットとデメリット | Growth Seed
上図のように、リファラーを渡せないパターンが発生することから、このパターンの影響範囲の洗い出しと確認を進めました。分析においてこの影響が発生すると困ります。このほかにも弊社プロジェクトでは、技術リスクよりもメディアや、各プロジェクトに関するのリスクがあった形です。facebookのいいね数引き継ぎ問題もありました。他にも複数の懸念を調査した上で会社からも正式にGOを頂き、作業を進めていきました。
完全HTTPS化への作業
作業としては主に以下のような項目となります。各サイトやエンジニアブログなどでよく書かれているので詳しくはそちらを参考にしてもらえればと思います。弊社で特に気をつけたポイントはこちらです。
- HTTPからHTTPSへのリダイレクト
- 内部リンク修正
- mixed contentsに注意
- rel=”canonical”属性の変更も忘れない
- 各種ツール連携・連携サービスのHTTPS動作確認。 特に広告関連は大事です。
- Google Search Console等での登録URLの修正。
- HSTS サポートも取り扱い慎重に。
- リファラー等のログ集計への影響の確認
最後に、
完全HTTPS化について思うこと
まだまだ日本は世界各国と比べると完全HTTPS導入率は低い状態ですので、どんどんHTTPS化は進むといいなと思います。そして完全HTTPS化の流れは必須であり時間の問題だと思っています。とはいうものの、未対応であれば急がず焦らずに対応時期を決めて取り組めばよいと思います。焦りは禁物です。
完全HTTPSについては、現在はまだ発展途上だと思っています。メリットが増えているその裏ではSSL/TLSでの脆弱性の発見や、HTTP/2サーバのセキュリティ問題などその技術に関するリスク発見と対応が繰り返されているため、完全HTTPS化後は、よりシビアにこれら話題に注視する必要があると思います。また、Let’s Enscriptをはじめとした無料SSL証明書が世界的に完全HTTPS化を促進する反面、詐欺サイトやフィッシングサイトでは多くがこれらの証明書を利用しているなどといった次の課題が出始めていたり(参考:Let’s EncryptとComodoのTLS証明書、96%の詐欺サイトで使用)と、社会的にもこれらへの対策を入れることが急務ではないかと思っています。
というわけで、日々の完全HTTPS化に関するニュースを気にしながら、運用をしていくのが良いでしょう。
Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。
興味のある方はぜひ一度気軽にオフィスに遊びにいらして頂ければと思います。