スズキです。

表記の件、実体はcURLです。

cURLは問題ない証明書だと下記のように正常に実行できますが、

# curl -s https://ssl.suz-lab.com; echo $?
INDEX
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 $?
INDEX
OK CODE 0
0

問題ある証明書の場合は下記のようになります。

# ./check_ssl -h d3hhpvahx0p2rw.cloudfront.net; echo $?
CRITICAL CODE 51
2

本件、証明書の有効期限もチェックできたらいいかもしれません。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら