2010年12月15日水曜日

サーバ証明書の有効期限日までの日数をもとめよ

某所でサーバ証明書の有効期限切れを監視できるといいのにね~という話があがっていたので、ちょっと作ってみた。

----- ここから -----
#!/usr/bin/perl
use Date::Parse;
use Net::SSLeay qw{ sslcat };

$host = "ホスト名";
$port = 443;
$request = "";

($reply, $err, $server_cert) = sslcat($host, $port, $request);
$asn1_utctime = Net::SSLeay::X509_get_notAfter($server_cert);
$date_string = Net::SSLeay::P_ASN1_UTCTIME_put2string($asn1_utctime);
$cert_notafter_time = Date::Parse::str2time($date_string);
$time_diff = $cert_notafter_time - time;
print $time_diff / (60 * 60 * 24) . "\n";
----- ここまで -----

エラー処理していないのでよしなに。
ホスト名とかポート番号とかを引数で指定できるようにすれば汎用的になります。

で、Zabbixと組み合わせてサービスとして売る。(爆)