Let’s EncryptでSSL証明書を無料で利用
- 作成日 2019.08.16
- 更新日 2020.07.20
- SSL
- centos, Let's Encrypt, linux, ssl

lolipop等を利用していると無料でSSLを簡単に設定できますが、さくらのVPSで運用しているサイトも無料でSSL化したいという依頼があったため、Let’s Encryptの利用する
OSのバージョン
#cat /etc/redhat-release
CentOS release 6.7 (Final)
#python --version
Python 2.6.6
インストール手順
下記のコマンドを実行
sudo curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
sudo chmod 700 /usr/bin/certbot-auto
証明書の作成
ドメイン「sample.com」と仮定して作成します
sudo /usr/bin/certbot-auto certonly --webroot -w /var/www/html --email sample.com --debug -d sample.com
wオプションでドキュメントルートディレクトリを指定 。
完了すると下記のディレクトリに証明書が作成される
/etc/letsencrypt/live/sample.com/
証明書を設定
自分の場合はhttpd.conf に直接書きました
<VirtualHost *:443>
ServerName sample.com
DocumentRoot /var/www/html/
# ...
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/sample.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sample.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/sample.com/chain.pem
</VirtualHost>
でサーバー再起動で、適応は完了
sudo service httpd restart
最後に自動化の設定
証明書の有効期限は3ヶ月しかないが、下記のコマンドを叩けば有効期限が3ヶ月延長できる
usr/bin/certbot-auto renew --post-hook "sudo service httpd restart"
あとはcronに期限前に実行するように登録すれば完了です。
今回は、VPSにcronがインストールされてなかったのでついでにインストール作業を行う
cronインストール
# インストール
yum -y install cronie-noanacron
# 起動
service crond start
# 自動起動設定
chkconfig crond on
あとは2ヶ月に1回実行に設定して完了
0 0 */2 * * root /usr/bin/certbot-auto renew --post-hook "sudo service httpd restart"
ちなみに、crontab -e は使わないことを習慣づけときたいので
※理由はcrontab -e 実行しようと思って、間違えてeの隣のrを打ってしまい、crontab -r が実行される危険性があるため -r ⇒cron 削除コマンド
/etc/cron.d
に適当なファイルを作成し、そこに記述します。
vi /etc/cron.d/letsencrypt
<編集>
0 0 */2 * * root /usr/bin/certbot-auto renew --post-hook "sudo service httpd restart"
テストのため、cron処理を3日後くらいに設定し、
# ログを確認
cat /var/log/cron |grep certbot
ログを確認し実行されて、証明書が更新されたことを確認してください
# 証明書の有効期限の確認
openssl x509 -noout -dates -in cert.pem
-
前の記事
7ZIP でフォルダ内のファイルを一括でZIP化するバッチ 2019.08.15
-
次の記事
Mysqlの全テーブル一括削除コマンド 2019.08.16
コメントを書く