2013年9月13日金曜日

SSL証明書(HTTPS)の有効性をチェックをするNagiosプラグイン

スズキです。

実体はcURLです。

cURLは問題ない証明書だと下記のように正常に実行できますが、
# curl -s https://ssl.suz-lab.com; echo $?
<html><body>INDEX</body></html>
0
問題がある証明書だと下記のように終了コードが0以外でとなります。
# curl -s https://d3hhpvahx0p2rw.cloudfront.net; echo $?
51

ということで、Nagiosのプラグインは下記のように作ってみました。
#!/bin/sh

. `dirname $0`/utils.sh

WARN=0
CRIT=0

while getopts c:w:h: OPTNAME; do
    case $OPTNAME in
    w)
        WARN=$OPTARG
        ;;
    c)
        CRIT=$OPTARG
        ;;
    h)
        HOST=$OPTARG
        ;;
    *)
        echo "UNKNOWN: Usage"
        exit $STATE_UNKNOWN
        ;;
    esac
done

curl -s https://$HOST
CODE=$?

if   [ $CODE -gt $CRIT ]; then
    echo "CRITICAL CODE $CODE"
    exit $STATE_CRITICAL
elif [ $CODE -gt $WARN ]; then
    echo "WARNING CODE $CODE"
    exit $STATE_WARNING
else
    echo "OK CODE $CODE"
    exit $STATE_OK
fi

echo "UNKNOWN: End"; exit $STATE_UNKNOWN

実行すると問題無い証明書の場合はかきのようになり、
# ./check_ssl -h ssl.suz-lab.com; echo $?
<html><body>INDEX</body></html>
OK CODE 0
0
問題ある証明書の場合は下記のようになります。
# ./check_ssl -h d3hhpvahx0p2rw.cloudfront.net; echo $?
CRITICAL CODE 51
2

証明書の有効期限もチェックできたらいいかも...
--------
http://www.suz-lab.com

1 コメント:

Genki Sugawara さんのコメント...

標準のcheck_httpで出来るのでは?
http://linux.101hacks.com/unix/check-http/