CentOS 6でLet’s Encrypt

昨今のウェブサイトはhttpsで通信が暗号化されているのが普通になりつつありますが、個人で利用するにはサーバ証明書を購入するのをためらってオレオレ証明書を使ってしまいがちです。Let’s Encryptプロジェクトではなんと正規のサーバ証明書を無料で取得することができるという素晴らしいプロジェクトです。

CentOS 6で使っているサーバにLet’s Encryptのサーバ証明書を導入してみたいと思います。サーバ証明書の取得はツール化されていて、しかも以下のページに日本語の説明をあるのでそんなに難しくありません。

https://letsencrypt.jp/usage/

ツールを実行すると必要なrpmなども自動でyum installしてくれるようですが、どうやらCentOS 6の環境にはpython-virtualenvというのが内容です。そこで別途pipでインストールすることにします。

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install virtualenv
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly -a standalone -d hoge.net

あと上記のページの説明ではサイトの認証にTCP 80番ポートを使うと書いてありますが、試した感じでは443番ポートを開けていないと認証が失敗するようです。それ以外は上記の説明通りに実行することであっという間にサーバ証明書が取得できます。

あとはApacheの設定です。/etc/letsencrypt/live/ドメイン名/にある証明書を/etc/httpd/conf.d/ssl.confで指定すればOKです。

注意しなくてはいけないのは有効期限が90日と短めだということです。letsencrypt-auto renewコマンドで期限が近付いている場合には自動で更新できるようなのでcronでも設定しておくのがよいと思われます。日曜日にlogrotateしたときについでにapacheが再起動されることを期待して土曜日にチェックとかいいのでは。