【Let’sEncrypt】Certbotの使い方(CentOS7 + nginx)

■環境

CentOS 7.3
nginx 1.10.3
certbot 0.14.1


■初回SSL証明書発行

certbotをインストールする。

yum -y install yum-utils
yum install certbot

証明書を発行する

certbot certonly --webroot -w /usr/share/nginx/html -d your-domain.com

※上記コマンドは環境に合わせて読み替えてください。
/usr/share/nginx/html
 →設定するドメインのドキュメントルート
your-domain.com
 →設定するドメイン

これで証明書が以下ディレクトリに生成されます。

ll /etc/letsencrypt/live/your-domain.com/
lrwxrwxrwx 1 root root  40 Jun 12 16:41 cert.pem -> ../../archive/your-domain.com/cert1.pem
lrwxrwxrwx 1 root root  41 Jun 12 16:41 chain.pem -> ../../archive/your-domain.com/chain1.pem
lrwxrwxrwx 1 root root  45 Jun 12 16:41 fullchain.pem -> ../../archive/your-domain.com/fullchain1.pem
lrwxrwxrwx 1 root root  43 Jun 12 16:41 privkey.pem -> ../../archive/your-domain.com/privkey1.pem

証明書更新の度に上記シンボリックリンクの向き先が新証明書に切り替わるので、
nginx側の設定は1度設定すれば変える必要がなくなります。

■nginx設定

nginxの設定ファイルにて、SSL証明書と秘密鍵の設定をします。
(/etc/nginx/nginx.conf)

(省略)
server {
    listen  443 ssl http2 default_server;
    (省略)
    ssl_certificate "/etc/letsencrypt/live/your-domain.com/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/your-domain.com/privkey.pem";
    (省略)
}

設定後、nginxを再起動します。

systemctl restart nginx.service

■SSL証明書の自動再発行設定

SSL証明書の期限が残り1ヶ月を切ったら、証明書更新が可能となります。
更新は以下コマンドで実施します。

certbot renew

自動で更新できるように、cronに上記コマンドを登録しておきます。
例として、毎週月曜日の早朝に更新作業を行なうようにします。
(残り期限1ヶ月以上残っている場合は空振りして終わる)

10 0 * * 1 certbot renew

これで設定は完了です。

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です