Let's Encryptを試してみたよ

宮川達彦氏のPodCastであるRebuild FMの124回で話題になってたLet's Encrypt
ちょっとウチのサーバで試してみた

Let's Encrypt 公式
Let's Encrypt 総合ポータル 有志による?日本語サイト

Let's Encrypt とは

Let's Encrypt は、認証局(CA)として「SSL/TLSサーバ証明書」を無料で発行するとともに、証明書の発行・インストール・更新のプロセスを自動化することにより、TLS や HTTPS(TLSプロトコルによって提供されるセキュアな接続の上でのHTTP通信)を普及させることを目的としているプロジェクトです。
非営利団体の ISRG(Internet Security Research Group)が運営しており、シスコ(Cisco Systems)、Akamai、電子フロンティア財団(Electronic Frontier Foundation)、モジラ財団(Mozilla Foundation)などの大手企業・団体が、ISRG のスポンサーとして Let's Encrypt を支援しています。
Let's Encrypt の「SSL/TLSサーバ証明書」は、独自ドメインの所有者であれば、誰でも簡単に、無料で取得することができ、商用サイトでの使用も可能です。導入方法については Let's Encrypt の使い方 をご覧ください。

インストールはgitでクローンするだけ

$ git clone https://github.com/letsencrypt/letsencrypt

そしたらディレクトリ内に移動して実行するだけ

$ cd letsencrypt/
$ ./letsencrypt-auto

必要なファイル等はこのトキにインストールされる
環境に依ってはちょっと時間がかかるかも

初回起動時にはメールアドレスの入力を即される
緊急の通知や鍵を紛失したときの復旧に使われるとのコト
メールアドレス入力

次に利用規約への同意
利用規約への同意
この2つの入力は初回起動時のみ、ココで終了させても次は訊かれない

CentOS

環境としてはさくらのVPNのデフォにyumでhttpdをインストールした感じ
 CentOS / 6.7
 Apache / 2.2.15

テスト用に作ったサブドメイン
 le-centos.daikoku-ya.org

実は既に実行してたらもう出ているかもしれないけど
Cent OS 6.7にインストールされてるPythonのバージョンが2.6.x系であるため
やたらとエラーやらワーニングやらが出ちゃう
2.7.x系にアップデートするとか他にも方法はあるみたいだけど
とりあえず強制的に実行させちゃう感じで毎回 --force オプションを付ける
今のトコは問題ない感じだけど今後どうなるかは不明

$ service httpd stop
Cent OSでは実行前にhttpdを停止させておかないとアラートが出る httpd停止を即すアラート
$ sudo ./letsencrypt-auto certonly --standalone --debug
で実行 するとこんな感じで設定する対象のドメイン名を訊かれる ドメイン指定

-d オプションでドメイン名を指定して実行するとこの画面は出ない

$ sudo ./letsencrypt-auto certonly --standalone -d le-centos.daikoku-ya.org --debug

こんな画面が出たら完了
cert作成完了
 /etc/letsencrypt/archive/指定したドメイン名/
以下に証明書等が作成されるんだけど、発行する度に連番が付いて行くので
 /etc/letsencrypt/live/指定したドメイン名/
内に作られるシンボリックリンクで指定するのがベスト
発行ごとに対象が最新の物に書き換わるみたい
証明書等

上記が確認出来たら /etc/httpd/conf/httpd/conf の書き換え

NameVirtualHost *:443

記載が無ければ追加する
443設定

ヴァーチャルホストのディレクティブ設定
こちらも443に変更する

<VirtualHost *:443>

で、SSLに関する設定を追加
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/le-centos.daikoku-ya.top/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/le-centos.daikoku-ya.top/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/le-centos.daikoku-ya.top/chain.pem

Vhost設定

httpとhttpsと両方使う場合は元々の *:80 の設定はそのままにして
新たに *:443 のディレクティブ設定を追加する

これで設定完了、httpdをスタートする

$ service httpd start

で、確認 Let's Encrypt Test Page
サーバ証明書の確認C


ubuntu

環境はさくらのVPNにインストールしたubuntu server
 ubuntu / 14.04.3 LTS
 Apache / 2.4.7

テスト用に作ったサブドメイン
 le-ubuntu.daikoku-ya.org

ubuntuの場合は簡単

$ sudo ./letsencrypt-auto

で実行すると現在有効になってるドメインの一覧が出るので
その中から証明書を発行するドメインを選択すれば良い
ドメイン指定

-d オプションでドメイン指定して実行すればこの画面は無し

$ sudo ./letsencrypt-auto le-ubuntu.daikoku-ya.org

次に http / https の双方を有効にするか、全て https にするかの設定
この辺りはお好みで
プロトコル指定のオプション

で、完了
設定完了u

この時点で /etc/apache2/sites-available/ 内にSSL用のconfファイルが作成されてる
SSL用confファイル
さらに a2ensite も実行されていてさらにApacheの再起動もされているという
なんて便利なんでしょう、ubuntuは(笑

また、確認 Let's Encrypt Test Page
サーバ証明書の確認U

あと、確認はSSL LABSのSSL Server Testのページでも出来る
結構時間かかるんでこのくらいが確認できたら終了しちゃって良いかも
SSL Server Test

そんなワケで、すぐに設定できてしかも無料
有効期間は3箇月だけど再発行すれば良いだけだしね
今後どうなるかは解らないけど、とりあえずテストや開発に使うのには良いかも