Help us understand the problem. What is going on with this article?

SSL証明書の有効期限を確認するスクリプト

More than 5 years have passed since last update.

openssl コマンドを使うと証明書の情報が取得できるので、証明書の有効期限のチェックを行うスクリプトを書きました。

#!/bin/bash

## validate_certs - Check SSL certificate expiration date

WARN_DAYS=30
TARGETS=(
    "secure.example.com"
)

function show_enddate()
{
    echo "" | openssl s_client -connect $1:443 2> /dev/null | openssl x509 -enddate -noout | sed 's/notAfter\=//'
}

echo "SSL Certificate Expiration Checking ($(date -R))"
echo

i_now=$(date "+%Y%m%d%H%M%S")
i_warn=$(date -d "$WARN_DAYS days" "+%Y%m%d%H%M%S")
for host in ${TARGETS[@]}; do
    enddate=$(LANG=C date -d"$(show_enddate $host)")
    i_enddate=$(date -d"$enddate" "+%Y%m%d%H%M%S")
    if [ $i_now -ge $i_enddate ]; then
        echo "[SEVERE]  \`$host' already expired on $enddate"
    elif [ $i_warn -ge $i_enddate ]; then
        echo "[WARN] \`$host' will expire on $enddate"
    fi
done

echo
echo "EOF"

変数 TARGETS に監視するドメイン名を列挙しておきます。
有効期限までの日数が変数 WARN_DAYS よりも小さい場合、画面にそのドメインを [WARN] というメッセージとともに出力します。ちなみに有効期限を過ぎてしまっているドメイン名は [SEVERE] というメッセージになります。

このスクリプトの出力をメールで送信するように cron に登録しておくと証明書の更新忘れがなくなる、かも。

unicast
ユニキャストは、茨城大学工学部発の学生ベンチャー企業として、2005年に産声をあげました。 ミッションである『テクノロジを通じて「驚き」と「感動」を創造し、人々の「夢」と「希望」を支えます。』を合言葉に、これからも幅広く価値発信してまいります。
http://www.unicast.ne.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away