ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

アプリの通信を手軽にセキュアにしよう。無料、格安SSL/TLSまとめ

f:id:mbaasdevrel:20180524161404p:plain

アプリとサーバはインターネットを使って通信することが多いでしょう。その間の通信はセキュアに保たなければなりません。公衆無線LANなどを使っていると、傍受されて情報を盗み見られる可能性があります。

通信をセキュアにするために使われるのがSSL/TLSです。今回は安く(できれば無料で)導入できるSSL/TLSサービスを紹介します。

Let's Encrypt - Free SSL/TLS Certificates

f:id:mbaasdevrel:20180524161140p:plain

Let's Encryptは最も有名な無料SSL/TLS証明書配布サイトです。サーバに自分で設置するタイプの証明書で、期間は90日と短いものです。ただし、コマンドが充実しており、証明書の発行から設置までほぼ自動化できます。

コマンドが使えるとあって、Webサービスなどでカスタムドメインをサポートしているケース(下記GitHub Pagesなど)でも利用されています。

Let's Encrypt - Free SSL/TLS Certificates

GitHub Pages

f:id:mbaasdevrel:20180524161154p:plain

もしWebサイトが静的なもので十分であったり、ブログなどで利用するのであればGitHub Pagesを使うと無料でホスティングが実現できます。カスタムドメインが使えますが、5月からHTTPSが利用できるようになりました(まだすべてのリポジトリが対象ではないようです)。

HTTPSはLet's Encryptを用いています。

GitHub Pages

Cloudflare

f:id:mbaasdevrel:20180524161208p:plain

Cloudflareはプロキシ型の無料HTTPSサービスを提供しています。証明書はCloudflare側にある、つまり証明書の更新が不要で使えます。プロキシではありますが、速度はほとんど気になりません。

Cloudflare - The Web Performance & Security Company | Cloudflare

CAcert.org

f:id:mbaasdevrel:20180524161243p:plain

昔からある証明書発行サイトですが、ルート証明書が対応していないため、Webブラウザ側でインストールする必要があります。一回インストールしてしまえばCAcert.orgで発行された証明書すべてに対応できるようになりますが、一般的とは言いがたいでしょう。

CAcert.orgへようこそ

Free SSL Certificate for Open Source Projects

f:id:mbaasdevrel:20180524161259p:plain

オープンソース・プロジェクト向けに無料のSSL証明書を発行しています。制限はありますが、オープンソース・プロジェクト向けであれば採用しても良さそうです。

Free SSL Certificate for Open Source Projects

Free SSL Certificates from No 1 Trust Provider

f:id:mbaasdevrel:20180524161315p:plain

90日間使える無料のSSL/TLS証明書を発行します。90日後については特に書かれておらず、無料で更新できるのかは不明です。

Free SSL Certificates from No 1 Trust Provider

Amazon CloudFront

f:id:mbaasdevrel:20180524161326p:plain

Amazon CloudFrontはCDNですが、無料の独自ドメイン証明書もついています。Amazon S3と組み合わせることで、HTTPS対応サイトを立ち上げられます。ただし、転送量やリクエスト数に応じた課金が発生します。

Amazon CloudFront(高速コンテンツ配信ネットワーク - CDN) | AWS

番外編:.app

f:id:mbaasdevrel:20180524161404p:plain

Googleが新しく登録した .app ドメインはHTTPS接続が強制されるドメインとなっています。証明書を提供してくれる訳ではありませんが、HTTPS接続が強制されるドメインとあって、アプリ(に限らず)のセキュリティを向上するのに役立っていくことでしょう。

.app

まとめ

現在、完全に無料で使おうと思うとLet's Encryptがベストな選択と言えるでしょう。ただし、これらの証明書は無料で使える簡易的なものであり、存在証明などが伴うものではありません。クライアントとサーバ間の通信をセキュアにする以上の機能は持ちませんので注意してください(フィッシングサイトなどでも使われているケースがあります)。

WebサイトのPWA対応、Googleのクローリング判定の一つに入れられるなどHTTPSは外せない技術になっています。企業であれば有料のものを採用しても良いですが、個人などでHTTPを使うくらいであれば、これらのサービスを利用して通信をセキュアにするのが良いでしょう。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。