Let's encrypt SSL 証明書自動更新

Let's encrypt SSL 証明書自動更新

概要

Let’s encrypt SSL は開発環境で本番環境と同等に
https 通信プロトコルを利用したい為に利用しています。

バーチャルホストで複数ドメインを利用している場合等でも
マルチドメイン SSL 証明書が取得でき便利です。

オレオレ SSL 証明書ではブラウザによっては
「このページは保護されていません」
と表示されるケースがあり
非エンジニアの方によっては不信感が募ることもあります。

β 版

β 版時代の Let’s Encrypt SSL 証明書管理スクリプトです。
今回作成した SSL 自動更新スクリプトはこちらではありません。

SSL 自動更新スクリプト

今回作成した Let’s Encrypt 自動更新(Apache)スクリプトです。
更新判定し Slack 通知します。

有効期限が 30 日を切った場合に SSL 証明書を更新し httpd を再起動します。

cron 設定

  • 毎月第一土曜日 AM6:00 設定

開発環境なら土曜日に実行気づいて最低でも日曜日には治せる為。
現運用ではこれは功を奏してます。

1
00 6 1-7 * * 6 root /root/letsencrypt.sh/refresh_cert.sh

Slack 通知

強制更新したい場合

2016 年 5 月 07 日より certbot-auto に名称変更され
certbot-auto による自動更新を以下スクリプトになります。

本番環境以外でクライアント様への確認用等でなければ
こちらを利用しても良いかと思います。

--force-renewal をオプション指定することで強制的に更新します。

そもそも通知いらないという場合

こちらも certbot-auto

  • cron で直接コマンド設定
  • 毎月第一土曜日実行
  • 一応ログには残しておく
1
00 6 1-7 * * 6 root /root/certbot/certbot-auto renew --force-renewal && service httpd graceful > /root/certbot/renewal.log

以上です。