Tech Blog

グローバルな家族アプリFammを運営するTimers inc (タイマーズ) の公式Tech Blogです。弊社のエンジニアリングを支える記事を随時公開。エンジニア絶賛採用中!→ https://timers-inc.com/engineering

WebサーバをHTTPS化するということ

こんにちは、サーバエンジニアの長南(ちょうなん)です。

サーバやインフラ分野でなくてもITエンジニアとして働いていると、色々な場面でWebサーバを構築する必要にせまられます。この Times Tech blog を読んでいるあなたもきっと一度はWebサーバを作ったことがあるかと思います。しかし、SSL接続可能なWebサーバと言われたらどうでしょう?

「秘密にしたい情報を扱わないし」「個人情報を入力するサイトじゃいないし」「API専用サーバだし」「証明書が高いし」などといった理由で敬遠していたりしませんか? そんな敬遠されやすいHTTPSサーバについて少し書いてみたいと思います。

あなたのWebサイトをHTTPS化しないといけない理由

WebサーバをHTTPS化することで得られるメリットや、HTTPS化しないといけない理由をあげてみました。

  • SEO的に少しだけ有利になる

2014年と少し古い話題ですが、HTTPS接続できるWebサーバは検索順位的に少しだけSEOで有利になるとGoogleが発表しています。

http://googlewebmastercentral-ja.blogspot.jp/2014/08/https-as-ranking-signal.html

  • HTTP/2 を使うときには事実上 TLS接続が必須となる

HTTP の新しいプロトコルバージョンの HTTP/2 を使おうとした場合には、ChromeFirefox では TLSを要求しているので、「すべてのサイトがHTTP/2を使うようになる長い視点」で見た場合には「すべてのWebサーバがTLSで暗号化通信を行わないといけない」ことになります。

また、完全な憶測ですが新しいプロトコルの普及を後押しするために「HTTP/2サイトは検索順位的に優遇する」といった施策をGoogleが打ってくるかもしれません。HTTPSとHTTP/2のTLSは違うプロトコルですが、今からWebトラフィックの暗号化に親しんでおいても損はないと思います。

jp.techcrunch.com

App StoreiOSアプリを作ってWebサイトと通信するときには、2017年1月以降はApp Transport Securityを使ってHTTPSでWebサーバと通信しないといけなくなりました。

  • Webサーバのセキュリティを向上することができる

いまさら取り上げることではないかもしれませんが、WebサイトをHTTPS化することで通信を暗号化することができます。住所や名前などを入力してもらう必要があるサイトではいまはHTTPS接続Webサーバ必須です。

WebサイトをHTTPS化する際に気をつけたいこと

そんなHTTPSサーバですが、構築するときに気をつけないといけないポイントがいくつかあるので書いてみました。

証明書の取得方法や一般的な設定方法については、このblogを読んでいる皆さんはご存知かと思いますし、証明局でも親切に説明してくれるので省略します。

「証明書が高すぎて買えないんですけど...」

HTTPS接続可能なWebサーバを構築するためにはSSL証明書を入手しないといけなく、それなりの金額をかけて証明局から年単位で購入するのが一般的でしたが、無料でSSL証明書を発行してくれるところも出てきました。

サイトの出所を証明したいような場合には従来通りEV証明書を証明局から購入する必要がありますが、実在証明など不要で単にHTTPS接続を実現したいということであれば、こういった証明局のものでも問題ないと思います。

  • Let's Encrypt

https://letsencrypt.org/

  • AWS Certificate Manager

https://aws.amazon.com/jp/certificate-manager/

  • StartSSL

https://startssl.com/

「そのWebサイト、本当に安全ですか?」

HTTPSサイトではよく「SSL通信するので安全です」といった説明を良く見かけますが、エンジニアたるもの「本当に安全なのか」を評価して、不備があったとしても問題が発覚する前に対処しておきたいところです。最近話題になったものでも「POODLE」や「heartbleed(これはOpenSSLのものですが)」「FREAK」「DROWN」といった有名な脆弱性がありますし、それ以外の脆弱性もたくさん明らかになっています。

このような脆弱性に対応できているかをオンラインで調べることができるのが

www.ssllabs.com

のサイトです。チェックしたいサイトのFQDN名を入力することで、そのサイトのHTTPS接続がどのくらい安全なのかを、A,B,C...で判定してくれます。一般的なLinuxディストリビューションの標準設定をそのまま使っているようなサイトでは、おそらくA判定をもらうのは難しいでしょう。サイトの問題点についても(英語ですが)指摘してくれるので、ひとつひとつ問題を解消することができると思います。

がんばって問題を解決して「A判定」がもらえるようにしましょう。

f:id:timers-tech:20160617172631j:plain

「EV証明書を買ったのだけど、実は脆弱性対応が遅れていた」とならないように確認しておきたいところですね。

「ぼくのかんがえたさいきょうのCipher設定」

前掲の Qualys SSL LABS の診断サイトでは大多数のサイトが「Cipher Suiteに不備がある」ということで判定を下げられるかと思いますが、どの設定が最適なのかをヒントなしで書くのは非常に難しいものです。

そんなときには Mozilla が準備している

Redirecting to ssl-config.mozilla.org...

にアクセスして、WebサーバとOpenSSLのバージョンを指定すると、おすすめの設定を作ってくれます。Cipherの設定は長く難解になりがちなので、参考にしてみるとよいでしょう。

おわりに

これからのITエンジニアリング分野はHTTPS抜きに語れない時代に突入しつつあります。苦手意識を持たずに前向きに取り組んでいきたいところですね。


子育て家族アプリFammカップル専用アプリPairyを運営する Timers inc. では、現在エンジニアを積極採用中! 急成長中のサービスの技術の話を少しでも聞いてみたい方、スタートアップで働きたい方など、是非お気軽にご連絡ください! 採用HP : http://timers-inc.com/engineerings

Timersでは各職種を積極採用中!

急成長スタートアップで、最高のものづくりをしよう。

募集の詳細をみる