証明書期限の監視スクリプトを書いた

証明書期限の監視がうまくいかない

ブラウザから見ると正常な証明書期限が見える(下記画像参照)のに監視がうまくいかなかった。


おかしな監視結果はこちら(↓)いまやレガシーなNagiosが真っ赤っ赤に。

Nagios監視プラグインのcheck_httpが検知している情報を見ると、古いSSL証明書の期限をみている。管理者に確認してもらったところ、OSはWindows ServerでWebサーバはApache。ちなみに古い証明書も一緒に入っているとのこと。

???

よくわからない。

そもそも古い証明書が一緒に入っている状態が謎だし、check_httpが古い証明書の方をみるのも謎。

しかし監視対象サーバの管理者は自分ではないので、設定をいじることもできない。古い証明書なんて削除してくれればいいのに…。管理者側は、現状動いているものを下手にいじりたくないとのこと。

別の監視スクリプトを書いた

Nagiosには非常に優れた監視プラグインのcheck_httpがあるが、これをやめて別のスクリプトを使うことにした。ブラウザで正しい期限が見れるということは、curlでも同様の情報がとれるはず。したがって、curl経由で情報取得するスクリプトを書いた。

テスト。ホストXXX.co.jpの証明書期限を監視、30日前にWarning、15日前にCriticalとする。

成功。あとはNagiosに組み込む。

おわり。ちゃんと監視できるようになった。

Nagiosのプラグインはちょいちょい、こういう想定外が起こるので注意。ほかにも、check_mail系で/tmpに一時ファイルを作成し、それを参照して判定…みたいなので/tmpに作った一時ファイルが見れなかったり。