Let’s Encryptとは
自己署名証明書(オレオレ証明書)を利用すると、ブラウザやメールクライアントでは警告が発せられます。信頼できない証明局に署名された証明書です、といったような警告です。
個人的に利用する分にはまるで問題ないのですが、警告がでるのは避けたいもの。しかし警告の出ない証明書は有料のものがほとんど。信頼第一なサイトであればお金を払って取得する意味もあるでしょうが、ちょっとしたブログでSEO対策したいとか、お金を掛けずに証明書を利用したいという場合にはLet’sEncryptはとても良い選択肢です。
本家のサイトはこちら:Let’s Encrypt
Let’s Encryptでもらえるサーバー証明書とは
ブラウザでどこかのサイトへアクセスするにあたって内容を誰かに知られたくない情報ってありますよね。例えばクレジットカードの番号だったりとかメールだったりだとか。
そういう時は見られてもわからないように通信を暗号化すればよいのです。お互いが共通の合鍵を持ってやりとりする際には鍵をかけて通信すれば良いです。ですがインターネット上では通信している相手が本当に通信したい相手なのかはわからないですよね。
インターネット上では本当にこの人(ドメイン)は誰なんだろうかっていうのをサーバー証明書というものを使って証明します。
しかし困ったことにサーバー証明書はわりと簡単にいくらでも作れます。悪人がこの証明書は信頼できる企業の証明書やでと偽の証明書を作ることもできるのです。
そこで登場するのが認証局。そのサーバーの所有者や企業が本当に存在するのか、本当にそのサイトやドメインを所有しているのかを確認して、問題なければサーバー証明書にサインをします。
ブラウザでどこかのページにhttpsで通信した時にサーバー証明書にサインしてある認証局って誰やろ?と確認して信頼できる認証局であれば問題なし、知らない認証局だったら警告を表示する、という仕組みで相手先が正しいかどうか、というのを確認できるようになっています。
Let’s Encryptとは
Let’s Encryptとは認証局(CA)です。ドメインの所有者、管理者の確認する人ですね。
認証局はサーバー証明書を発行します。Let’sEncryptでは発行するといっても無制限に発行するわけではなく、ドメインの管理者が証明書をリクエストしてきていると確認できればサーバー証明書を発行します。この確認作業をする取り決めをACMEプロトコルと言います。
ISRGという組織によって運営され、無料で利用できるサーバー証明書を取得できます。
Let’s Encryptの動作の仕組み
本家のページに詳細が載っていますが、一言二言で説明したいともいます。
[動作の仕組み] https://letsencrypt.org/ja/how-it-works/

mackii.netのサーバー証明書ください

そう言われてもあなた本当にmackii.netのドメインを管理している人?
mackii.netのウェブサーバーにxxxxのキーワード置いてください。

わかりました。置きましたよ。

置いてあるキーワード見ました。
こちらのキーワード一致してるから間違いなさそう。
証明書発行します。

ありがとう
※ 上記は概要の話です、実際はもう少しやりとりや制限事項があります。
※ ドメインを管理しているかどうかをDNSを利用して証明する方法もあります。
導入手順
導入したい場合、Let’s Encryptのサイトをまず見てください。
https://letsencrypt.org/ja/getting-started/
シェルへアクセスできる場合、ホスティングサービスを使っている場合など概要が記載されています。
私は以前仕事でgetsslというオープンソースの製品で導入した経験があります。記事はこちら。