Intereting Posts
Как взломать базу данных? Вопрос о солевом и т. Д. Как был создан URL-адрес http://stackoverflow.com/posts/1807421/edit, созданный на PHP? С чего начать с запуска командной строки в PHP с помощью хоста CPanel typehinting: метод должен принимать любой $ arg, являющийся объектом неопределенные текстовые поля индекса php базы данных? Yii 2 Запрос ActiveDataProvider с -> all () дает «Вызов функции-члена иFilterWhere () для массива» .htaccess сделать папку действовать как root? Одновременное выполнение нескольких скриптов PHP (проблема с циклом базы данных) при открытии с помощью winrar, Zip-файл, полученный через отчеты Cakephp MediaViews Неожиданный конец архива «Потерянное соединение с сервером MySQL» при попытке подключения к удаленному серверу MySQL Apache дает 404 ошибку после обновления ОС Mac OS Проверка подлинности PHP с несколькими доменами и субдоменами Ярлык для эха «<pre>»; print_r ($ myarray); echo «</ pre>»; Попытка захватить число после определенной строки в содержимом вызова с помощью curl Вопросительные знаки вместо китайских символов

Как получить дату истечения срока действия из файла сертификата SSL в PHP

Я хочу получить дату истечения срока действия из файла сертификата SSL. В PHP есть веб-страница, которую я создал, в которой пользователь может загрузить свой файл сертификата SSL, и мне нужно будет получить дату истечения срока действия этого файла с помощью PHP.

Код ниже должен помочь:

  $url = "https://www.google.com"; $orignal_parse = parse_url($url, PHP_URL_HOST); $get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE))); $read = stream_socket_client("ssl://".$orignal_parse.":443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $get); $cert = stream_context_get_params($read); $certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']); echo '<pre>'; print_r($certinfo); echo '</pre>'; 

Дата истечения срока действия должна быть в поле $ certinfo ['validTo'].

 $certpath = "your_certificate.cer"; $certinfo = openssl_x509_parse(file_get_contents($certpath)); if( $certinfo['validFrom_time_t'] > time() || $certinfo['validTo_time_t'] < time() ) print "Certificate is expired."; 

Это сработало для меня:

 $url = "https://www.google.com"; $orignal_parse = parse_url($url, PHP_URL_HOST); $get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE))); $read = stream_socket_client("ssl://".$orignal_parse.":443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $get); $cert = stream_context_get_params($read); $certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']); echo '<pre>'; print_r($certinfo); echo '</pre>'; 

fine ssl expire time in this fild

 [validTo_time_t] => 1523164135 // expire time. 

Преобразование даты и времени

 $valid_from = date(DATE_RFC2822,$certinfo['validFrom_time_t']); $valid_to = date(DATE_RFC2822,$certinfo['validTo_time_t']); echo "Valid From: ".$valid_from."<br>"; echo "Valid To:".$valid_to."<br>"; 

Результат:

Действителен От: Пн, 09 Окт 2017 07:00:00 +0700 Действительно до: ср, 10 окт 2018 06:59:59 +0700