LoginSignup
10
9

More than 5 years have passed since last update.

[Zabbix]SSLサーバ証明書期限切れ○日前チェックをする

Last updated at Posted at 2016-06-04

これはQiita:Teamからの転載です。

参考および同じようなことをされていたエントリ

前提

  • サーバ証明書の有効期限が切れる○日前にZabbixからアラートがあがる と嬉しい
  • いま○日前か をZabbixが把握する必要はない
  • 有効期限切れまで○日前を切ったことを知れる のが重要

上記前提に基づいている

Zabbix Userparameter で以下を設定

  • ワンライナーで完結するようした
/etc/zabbix/zabbix_agentd.d/userparameter_sslcertificatecheck.conf
UserParameter=sslcert.notaftercheck[*],echo $$(( $$(date -d "$$(openssl s_client -connect $1:$2 -servername $1 < /dev/null 2> /dev/null |openssl x509 -text |grep 'Not After' | cut -d':' -f 2-)" +'%Y%m%d') > $$(date -d "$3 days" +'%Y%m%d') ))
sslcert.notaftercheck[*] []の中にカンマ区切りで引数設定可能
$1 []内引数の1番目 確認したい証明書が設置されているFQDN1
$2 []内引数の2番目 4432
$3 []内引数の3番目 60 とか 30 とか3
$$ ワンライナー実行時に $ になる $$(command) -> $(command)
やってることはこういうことです
#!/bin/bash

FQDN=subdomain.example.com
HTTPSPORT=443
DAY=30        # この場合30日前check

DOLLAR_1=${FQDN}
DOLLAR_2=${HTTPSPORT}
DOLLAR_3=${DAY}

NOTAFTER_YYYYMMDD=$(date -d "$(openssl s_client -connect ${DOLLAR_1}:${DOLLAR_2} -servername ${DOLLAR_1} < /dev/null 2> /dev/null |
                               openssl x509 -text                                                                                 |
                               grep 'Not After'                                                                                   |
                               cut -d':' -f 2-)"   +'%Y%m%d') 
N_DAYS_LATER_YYYYMMDD=$(date -d "${DOLLAR_3} days" +'%Y%m%d') # この場合実行日から30日後の日付
echo  ${NOTAFTER_YYYYMMDD} \> ${N_DAYS_LATER_YYYYMMDD}
echo $(( ${NOTAFTER_YYYYMMDD} > ${N_DAYS_LATER_YYYYMMDD} ))   # 偽なら0が返る前提なのでZabbixのトリガーは0を待ち構える形
output
20160908 > 20160703
1

  1. *.example.com の証明書確認なら実際のサーバで使用している subdomain.example.com を指定する、のような使い分け 

  2. HTTPS通信が可能ならば 443 の限りではない 

  3. 期限切れまで残り 60 or 30 日未満 になったらzabbixは echo 出力から 0 を受け取りアラートメール発報させることを想定 

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9