PHPでTLS/SSL証明書の有効期間を取得
昔使ったのでメモ用に。
SNI(同じIPアドレスで複数ドメイン)に対応するためオプションを付けています。
他にも色々情報が取れますが、今回は使わないので有効期間のみです。
取り合えずwww.php.netをサンプルに取得してみます。
<?php
$host = 'www.php.net';
$port = 443;
$timeout = 5;
//
$stream_context = stream_context_create(array(
'ssl' => array(
'capture_peer_cert' => true,
'max_redirects' => 0,
'SNI_enabled'=>true,
'SNI_server_name'=>$host,
)
));
$resource = stream_socket_client(
'ssl://'. $host. ':'. $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$stream_context
);
$cont = stream_context_get_params($resource);
$Data = openssl_x509_parse($cont['options']['ssl']['peer_certificate']);
// span
$tm_start = $Data["validFrom_time_t"];
$tm_end = $Data["validTo_time_t"];
echo date("Y-m-d H:i:s", $tm_start)." - ".date("Y-m-d H:i:s", $tm_end);
出力はこんな感じに。
- 2021-05-18 19:04:38 – 2022-05-18 19:04:38
タグ: SSL, TLS
この投稿は 2022年3月15日 火曜日 15:56 に PHP, 未分類 カテゴリーに公開されました。 この投稿へのコメントは RSS 2.0 フィードで購読することができます。
このページの一番下でコメントを残すことができます。トラックバック / ピンバックは現在受け付けていません。