Let’s Encryptで無料SSL証明書を取得しサイトをSSL化してみよう

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは。エンジニアの西脇(@yasuhiro1711)です。今日はニュースであふれているSSL、HTTPS周りのお話を書きます。

Google検索でhttpsサイトが優先的にインデックス!

先日Google ウェブマスター向け公式ブログにて、検索エンジンによるインデックスがHTTPSサイトを優先して登録をするとアナウンスがありました。

Google ウェブマスター向け公式ブログ: HTTPS ページが優先的にインデックスに登録されるようになります

これは、今後のSSL化への流れの中で大きな変化となりそうです。一気に小企業サイトや個人ブログなどでSSL化が進むでしょう。SEO界では大きな変化です。しかし、SSL化する時の悩みといえばSSL証明書のコストです。特に個人の場合、SSL証明書にまでコストをかけるのは、、、という声もありそうです。

そこで今日はそんな悩みを将来解決するかもしれない取り組みで、SSL証明書を無料で発行できる「Let’s Encrypt」を利用してサイトをSSL化してみたいと思います。

Let’s Encrypt とは何か?

letsencrypt

Let’s Encryptとは、無料で自動化された、オープンなCA局で、Internet Security Research Group (ISRG)が主導で進めているものです。このオープンCA局では、SSL証明書の発行を無料で、自動に、利用することができます。運営は、AkamaiやciscoやMozillaの専門家を始め、Facebookもスポンサーについています。そして、先日までクローズドだったLet’s Encryptが、12/3にPublic Beta版となり誰でも利用することが可能となりました。おめでとうございます!

Let’s Encrypt でSSL証明書を発行、設置してWEBサーバに設置する

Let’s Encryptは現在、様々なウェブサーバーのプラグインに対応しています。apache、standalone、webroot、manual、nginxなどが代表的なプラグインです。これを利用して証明書の取得からインストールまでが簡単に可能となっています。

今回は、プラグイン整備が進んでいるUbuntu14のApacheでテストしてみます。

Let’s Encrypt クライアントのインストール

※ 以下を実行すると、レポジトリ登録とパッケージがインストール・アップデートが自動で行われてしまいます。これは、既存環境だと非常に危険ではあるので、注意が必要です。
※ CentOS6の場合は、EPELレポジトリの登録が事前に必要です。

クライアントインストールは以下のコマンドで進めます。

以下のようなhelp内容が表示されれば完了です。

Let’s Encrypt クライアントの使い方

プラグインを利用することでとても簡単に操作ができます。今回は、Debian環境(Ubuntsu)のApache2.4で利用すべく、–apacheというプラグインを使います。以下のコマンド一発です。

もちろん、DNSを作業サーバに向けておかないとこの先進まないので注意してください。

コマンドを実行すると、以下のようにTUIが立ち上がります。

今回は、サーバネームも登録していなかったので、入力を促されます。
TUI1

続いて、利用したいドメインを聞かれます。
TUI2

サービスへの同意を求められます。
TUI3

オプションでhttpsだけにするのか聞かれます。
TUI4

最終的に以下のような出力で完了すれば、証明書の登録と設定が完了しています。

簡単すぎてびっくりしてしまいます。

ブラウザで確認

早速ブラウザから確認をしてみると、httpsで通ることが確認できますね。すごいです。しかし鍵マークが不十分になっていることがわかると思います。せっかく SSLになっているのに残念です。

TUI5

詳細をみると、「このウェブサイトの識別情報が Let’s Encrypt Authority X1 によって確認されました。証明書の透明性に関する情報がサーバーから提供されませんでした。」となっています。

TUI6

これは証明書がCT技術(Certificate Transparency)に対応していないためです。
調べてみると、Let’s Encryptのapacheプラグインの場合、まだCT機能までが盛り込まれていないようです。
参考:https://community.letsencrypt.org/t/will-you-support-certificate-transparency/222/4

Nginxの場合はnginx-ctを利用して、ソースインストールしたNginxにLet’s Encryptの –nginxプラグインを利用することで、簡単にCT導入もできる模様です。今すぐ、Let’s Encryptの証明書を利用してサイト運営するなら、このパターンでしょう。

今後のリリースに大いに期待です。

SSL証明書は90日間有効

Let’s Encryptの仕組みで、Let’s Encrypt発行のSSL証明書は90日間有効です。90日で期限が切れるので、その前にアップデートしなければいけません。90日と聞くと「短い!」「無料だからか?」と思うかもしれませんがそうではありません。webの世界で90日は新しい考え方ではなく、TLSトランザクションの約29%はこの周期となっています。これは、キーの流出やセキュリティ不具合などでアンセキュアな状態を作り出さないためとしています。

90日という周期なら、なおさらシンプルに自動でアップデートできるようにしておきたいものです。今でもLet’s Encryptにはシンプルにアップデートする仕組みがありますが、今後さらに簡素化されていくのだと思われます。

参考:Why ninety-day lifetimes for certificates? – Let’s Encrypt – Free SSL/TLS Certificates

まとめ

Let’s Encryptは簡単すぎてしまいびっくりしました。ただし、プラグイン開発はまだこれからなので、個人ブログ運営者など非エンジニアの方が導入するにはまだ難しい現状ですね。されどLet’s Encryptの今後がとても楽しみです。オープンで自由でセキュアなSSLの世界が早く実現して欲しいですね。

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメント

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください