Let's Encryptとnginxを5分で設定する
いままでStartSSLでした
いままではStartSSLを利用していました。手順が面倒でしたが無料なので我慢してました。(SSLの設定は面倒なのが当たり前だと思ってました...)
昨年末についにLet's Encryptがリリースされて評判も良いので使ってみたら設定だけなら5分でできましたのでメモします。
はじめる前に
設定するドメインにHTTPアクセスできる必要があります。
例えば www.sample.com に対してhttpsの設定をする場合、www.sample.com に対してhttp接続できる状態にしておきます。
Let's Encryptの証明書取得
git cloneして証明書を作ります。
今回はドメインは www.sample.com ドキュメントルートは /path/to/root/www.sample.com とします。
#cd /tmp #git clone https://github.com/letsencrypt/letsencrypt #cd letsencrypt #./letsencrypt-auto certonly --webroot -d www.sample.com --webroot-path /path/to/root/www.sample.com
nginx設定
作成した証明書を設定します。
server { listen 80; server_name www.sample.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name www.sample.com; root /path/to/root/www.sample.com; ssl_certificate /etc/letsencrypt/live/www.sample.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.sample.com/privkey.pem; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA; ssl_protocols TLSv1.2; index index.html index.htm index.php; }
nginxを再起動して、httpsアクセスしてみます。
有効な証明書として設定されていますね。
まとめ
簡単ですね。ただし有効期限が3ヶ月なので証明書の再設定が必要です。
参考
Let's EncryptとnginxでHTTP/2サーバを立てる