Let’s Encryptで古い各種証明書を自動で削除する
Let’s Encryptの以前に発行された証明書を削除
Let’s Encryptの証明書の有効期限が90日なので、1月に1回Cronで更新作業をおこなっています、そうすると新しいファイルは/etc/letsencrypt/archive/(ドメイン名)/*.pemとして保存されます。
ファイル名は、「cert1.pem」、「chain1.pem」、「fullchain1.pem」、「 privkey1.pem」の用に**.pemと保存され、新しいファイル名は「cert2.pem」、「chain2.pem」、「fullchain2.pem」、「 privkey2.pem」となり以前の数字に1つ足したファイル名になります。
この以前に発行された古い証明書ですが、自動削除されないのでfindをrmコマンドを利用して120日以前のファイルは削除するようにCronに登録して削除することにしました
Findとrmコマンドを利用して古いLet’s Encryptの証明書を削除
2年近く使用しているサーバですが、下記のように無料のSSL証明書のLet’s Encryptの以前に発行した古いが溜まっていきます。自動発行はできますが、以前のファイルを削除する機能がないので、Findとrmコマンドで削除するようにCronで登録していきます
$ sudo ls -lt /etc/letsencrypt/archive/example.com/ | tail -rw-r--r-- 1 root root 3440 10月 1 2016 fullchain3.pem -rw-r--r-- 1 root root 1704 10月 1 2016 privkey3.pem -rw-r--r-- 1 root root 1793 9月 1 2016 cert2.pem -rw-r--r-- 1 root root 1647 9月 1 2016 chain2.pem -rw-r--r-- 1 root root 3440 9月 1 2016 fullchain2.pem -rw-r--r-- 1 root root 1708 9月 1 2016 privkey2.pem -rw-r--r-- 1 root root 1793 8月 22 2016 cert1.pem -rw-r--r-- 1 root root 1647 8月 22 2016 chain1.pem -rw-r--r-- 1 root root 3440 8月 22 2016 fullchain1.pem -rw-r--r-- 1 root root 1704 8月 22 2016 privkey1.pem
findコマンドで120日より古いファイルを検索し、該当したファイルをrmコマンドで削除していきます
# 古いファイルを削除する前に、念のために「/etc/letsencrypt/archive/」フォルダを # 圧縮してバックアップをとっておきます $ sudo tar czvf /var/tmp/archive.tat.gz /etc/letsencrypt/archive/ # 120日より以前のファイルを検索して、古いファイルを削除します $ sudo find /etc/letsencrypt/archive/*/ -mtime +120 -name "*.pem" | xargs rm -f
削除されているか確認します
$ sudo ls -lt /etc/letsencrypt/archive/example.com/ | tail -rw-r--r-- 1 root root 3798 7月 1 06:00 fullchain28.pem -rw-r--r-- 1 root root 1704 7月 1 06:00 privkey28.pem -rw-r--r-- 1 root root 3798 6月 1 06:01 fullchain27.pem -rw-r--r-- 1 root root 2151 6月 1 06:01 cert27.pem -rw-r--r-- 1 root root 1647 6月 1 06:01 chain27.pem -rw-r--r-- 1 root root 1704 6月 1 06:01 privkey27.pem -rw-r--r-- 1 root root 2155 5月 1 06:00 cert26.pem -rw-r--r-- 1 root root 1647 5月 1 06:00 chain26.pem -rw-r--r-- 1 root root 3802 5月 1 06:00 fullchain26.pem -rw-r--r-- 1 root root 1704 5月 1 06:00 privkey26.pem
削除されているか確認したら、証明書の再発行ができるか確認します
# CentOS 7.X # /usr/local/certbot/certbot-auto renew --force-renew && /bin/systemctl reload httpd # CentOS 6.X # /usr/local/certbot/certbot-auto renew --force-renew && /etc/init.d/httpd reload
証明書が再発行できる事を確認できてApacheも再起動できたら、Cronに登録します。
# crontab -e 0 7 1 * * find /etc/letsencrypt/archive/*/ -mtime +120 -name "*.pem" | xargs rm -f
ディスカッション
コメント一覧
まだ、コメントがありません