1. Qiita
  2. 投稿
  3. PHP

PHP で外部サーバーの SSL サーバー証明書の有効期限を取得する

  • 28
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

下記のコードを実行すると qiita.com の SSL サーバー証明書の有効期限を取得することができます。

<?php
$domain_name = 'qiita.com';

$stream_context = stream_context_create(array(
  'ssl' => array('capture_peer_cert' => true)
));
$resource = stream_socket_client(
  'ssl://' . $domain_name . ':443',
  $errno,
  $errstr,
  30,
  STREAM_CLIENT_CONNECT,
  $stream_context
);
$cont = stream_context_get_params($resource);
$parsed = openssl_x509_parse($cont['options']['ssl']['peer_certificate']);

if(strpos($parsed['subject']['CN'], $domain_name) !== false){
  echo date('Y/m/d', $parsed['validTo_time_t']);
}else{
  echo 'not contract.'; 
}

実行結果です。

2014/03/21

これを PHPUnit などでテストにして Jenkins で定期実行すれば SSL サーバー証明書の有効期限を監視できますね。

下記を参考にしました。ありがとうございます。
http://stackoverflow.com/questions/3081042/how-to-get-ssl-certificate-info-with-curl-in-php

Comments Loading...