経緯
こちらの投稿 から派生。
変更点
- 一時ファイルを経由しないワンライナー化。
- タイムゾーン変更に対応。
- opensslのクライアントアクセスコマンドオプションに
-servername
を追加してSNI対応。- 後述のMuninプラグインでやってた変更を参考にした。
内容
有効期限を確認する
タイムゾーンを変えたい場合は環境変数TZを変更
DOMAIN='example.com'; TZ=JST-9 date +"%Y-%m-%d %H:%M:%S" --date="`openssl s_client -connect ${DOMAIN}:443 -servername ${DOMAIN} </dev/null 2>/dev/null | openssl x509 -enddate -noout | cut -d'=' -f2`"
残り日数を表示するなら…
DOMAIN='example.com'; date +"%s" --date="`openssl s_client -connect ${DOMAIN}:443 -servername ${DOMAIN} </dev/null 2>/dev/null | openssl x509 -enddate -noout | cut -d'=' -f2`" | gawk '{printf("%d\n",($0-systime())/86400-1/86400+1)}'
Muninで記録しておけばいいんじゃね?
上記コマンドをもとに自作しようとも考えたが、探すと既に存在した。
https://github.com/munin-monitoring/contrib/blob/master/plugins/ssl/ssl_
余談
今回、派生ネタを投稿して感じたことだけど、QiitaにはPull-Reqっぽい「編集リクエスト」機能はあるけど、それって当該情報の改訂提案だから、今回のようなものだとちょっと違うかと思って使えなかった。
どうせならFork機能か、あるいは関連付けができる機能が欲しいところ。