Pro kotrolu validace SSL certifikátů v Zabbixu jsem se rozhodl použít návod na wiki.zabbix, kde je odkaz na podrobnější autorův web.
Vše by fungovalo, až na malou drobnost a tou je následující příkaz, který je součástí scriptu, porovnávající datum z certifikátu s aktuálním časem. BSD date a GNU date je jiný a parametry jsou jine.
BSD date
date '+%s' --date "Dec 29 23:59:59 2013 GMT"
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
Script zext_ssl_check.sh, který používá OpenSSL (openssl s_client) pro zjištění data expirace certifikátu jsem si postupně prošel až jsem narazil na příkaz date. Abych FreeBSD naučil GNU date - gdate, musel jsem doinstalovat následující balíček coreutils.
coreutils-8.20_2 The Free Software Foundation's core utilities
Pak už příkaz dělal co má.
GNU date
gdate '+%s' --date "Dec 29 23:59:59 2013 GMT"
1388361599
Pak už příkaz dělal co má. Na stránce autora jsou dvě verze scriptu pro kontrolu SSL certifikátů. Jedna je z webu a druha je z svn.
Verze s svn vraci jen počet dní do expirace.
./zext_ssl_check.sh edu.mudk.cz 443
290
Verze z webu ma širší použití.
./zext_ssl_cert.sh
usage: ./zext_ssl_cert.sh [-i|-d] hostname port
-i Show Issuer
-d Show valid days remaining
./zext_ssl_cert.sh -i edu.mudk.cz 443
Thawte DV SSL CA
./zext_ssl_cert.sh -d edu.mudk.cz 443
290
Ke každému scriptu je extra Template. Použil jsem verzi z svn, ale musel jsem Template modifikovat pro Zabbix 2.0.5. Konkrétně mi External_check nefungoval.
Mnou upravená definice klíče.
zext_ssl_check.sh[{HOST.CONN},{$SSL_PORT}]
V Template bylo. Zkrátka musíme vědět co a jak je kde třeba :-)
zext_ssl_cert.sh[{$SSL_PORT}]
s tím, že varianta
zext_ssl_check.sh[{HOST.CONN}, {$SSL_PORT}]
a
zext_ssl_check.sh[{HOST.CONN} {$SSL_PORT}]
mi nefunovala v Zabbixu 2.0.5.
Charitativní orientační závod MTB
-
Závod se koná 4.10.2024, start 15:00 v Černé Vodě, startovné dobrovolné
500,- na učet 11559889/5500
před 2 dny