Raspberry PI 2にLet's Encryptとnginxでhttps環境を構築

Let's Encryptを使ってhttps環境を構築してみたいと思います。

最新のnginxをインストール

せっかくなので、最新のnginxをインストールしてhttp2にも対応させたいと思います。
基本的には以下の記事を見ればできます。

qiita.com

私の環境では、nginxの設定ファイルは/etc/nginx/conf.d/*****.confとしました。
以下では、この記事ではあまり触れられていないLet's Encryptのセットアップを中心に書いていきます。

Let's Encryptのインストール

まずは、Let's EncryptをGitHubからクローンしてきます。

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

証明書の発行

上記の記事ですでにnginxのセットアップは完了しているので、--webrootオプションを使って
サーバーを起動したまま取得します。

./letsencrypt-auto certonly --webroot -d ${DOMAIN} --webroot-path ${WEBROOT}

-dオプションをつけるとマルチドメイン証明書となるので、複数ドメインを指定できます。
${WEBROOT}にはnginxで指定したドキュメントルートを指定します。
成功したら、以下のような出力があります。

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/******.**/fullchain.pem. Your cert
   will expire on 2016-**-**. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - If like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

この後、nginx -s reloadでnginxを再起動したらhttpsができるようになっているはずです。

以上で完成です。
ずいぶんお手軽にhttpsが利用できるようになりました。
これを機に個人のwebサーバーもhttpsで運用していきたいところです。