読者です 読者をやめる 読者になる 読者になる

長生村本郷Engineers'Blog

千葉県長生村本郷育ちのエンジニアが書いているブログ

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

f:id:kenzo0107:20161114141731p:plain

概要

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

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

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

f:id:kenzo0107:20161114141627p:plain

β版

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

github.com

SSL自動更新スクリプト

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

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

gist.github.com

cron設定

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

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

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

Slack通知

f:id:kenzo0107:20161114141352p:plain

強制更新したい場合

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

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

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

gist.github.com

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

こちらも certbot-auto

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

以上です。