日: 2018年8月22日

  • 無料でhttps化!Let’s Encrypt導入手順

    無料でhttps化!Let’s Encrypt導入手順

    はじめに

    SSL証明書を無料で発行できる時代になった。Let’s enscryptを使えば証明書の有効期間が3ヶ月と極端に短いが、cronなどに仕込めば半永久的に利用が可能。
    今回は、nginxへの組み込みも含めて紹介。

    導入手順

    1 つのドメインへの証明書登録の場合は非常にシンプル。

    ./certbot-auto certonly --no-self-upgrade -n --webroot --agree-tos --email tsukada@test.jp -w /usr/share/nginx/html/sumito -d sumito.jp

    これだけで登録できる。

    Let’s Encryptの証明書は、

    -dオプションでドメインを。

    -w オプションでディレクトリを指定することで複数ドメインを1証明書にまとめることができる。

    以下3つのドメインを1証明書にまとめるとすると、

    • tsukada.test.jp
    • sumito.test.jp
    • coco.test.jp
      手順はこちら。
    cd /usr/local/src
    git clone https://github.com/certbot/certbot
    cd certbot/
    ./certbot-auto certonly --no-self-upgrade -n --webroot --agree-tos --email webadmin@test.jp -w /var/www/tsukada -w /var/www/sumito -d tsukada.test.jp -d sumito.test.jp -d coco.test.jp --expand

    オプションについて

    -w

    -w の部分はドキュメントルートを設定する。ドメイン毎に異なる場合は、-wを増やす。 -w /var/www/tsukada -w /var/www/sumito

    -d

    -dは1枚の証明書に持たせるドメインを入れる場合は、同様に-dを増やす。 -d tsukada.test.jp -d sumito.test.jp

    鍵の作成場所

    以下のディレクトリに作成される

    • /etc/letsencrypt/live/[URL]/fullchain.pem
    • /etc/letsencrypt/live/[URL]/privkey.pem

    nginxの設定

    上記記載の通り、`/etc/letsencrypt/live/`に作成される。

    nginx のserverの設定箇所のところに、以下のように設定することでnginxで証明書を有効化することができる。

    server {
      listen 443 ssl;
      ssl_certificate     /etc/letsencrypt/live/sumito.jp/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/sumito.jp/privkey.pem;
    

    証明書の自動更新

    cronを設定することで証明書の自動更新が可能。 証明書更新後、webサーバを再起動する必要がある。

    0 10 1 * * /usr/local/src/certbot/certbot-auto renew --force-renew && systemctl restart nginx

    参考情報

    15秒でわかるLet’s Encryptのしくみ~無料で複数ドメイン有効な証明書作成~ https://qiita.com/S-T/items/7ede1ccfae6fc7f08393