@d99999

Как с помощью CURL проверить валидность SSL сертификата, а так же его срок годности?

Код будет работать на PHP 5.3. Нужно проверить именно через PHP валидность SSL
  • Вопрос задан
  • 2693 просмотра
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
<?php
passthru('curl --insecure -vvI https://www.google.com 2>&1 | grep "start date:\|expire date:"');


*  start date: Oct  4 02:41:00 2021 GMT
*  expire date: Dec 27 02:40:59 2021 GMT
Ответ написан
@galaxy
Почему именно с помощью CURL? Это неправильный инструмент.
Получить сертификат из соединения позволяют функции stream_context_*.
Распарсить его - функции расширения openssl.

$ctx = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE)));
$sock = stream_socket_client("ssl://www.google.com:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx);
$cert = stream_context_get_params($sock);
$certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']);
// print_r($certinfo);

print "Valid from: " . date_create_from_format("ymdHise", $certinfo["validFrom"])->format("c")
    . "\nValid till: " . date_create_from_format("ymdHise", $certinfo["validTo"])->format("c") . "\n";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы