Почему аннулирован сертификат SSL?

BadSSL указывает, что этот URL https://revoked.badssl.com/ имеет отозванный сертификат SSL.

В PHP дата истечения срока действия сертификата SSL установлена ​​на 2019-09-11 12:00:00

$url = "https://revoked.badssl.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']);
$validFrom = date('Y-m-d H:i:s', $certinfo['validFrom_time_t']);
$validTo = date('Y-m-d H:i:s', $certinfo['validTo_time_t']);
$current = date('Y-m-d H:i:s', time());$validFrom = 2016-09-02 00:00:00
$validTo   = 2019-09-11 12:00:00
$current   = 2017-02-20 19:00:00

$validFrom > $current : False

$validTo < $current : False

Я думал, что сертификат отозван, если $validFrom > $current OR $validTo < $current, Это не тот случай.

Я могу вычесть это с PHP & Библиотека cURL, невозможно проверить отзыв сертификата. Если сертификат был скомпрометирован и отозван владельцем, вы никогда не узнаете об этом. Это правильно?

0

Решение

Сертификат недействителен / отозван, если $ validFrom> $ current ИЛИ $ validTo < $ тока

То, что вы описываете, не является ни отозвана ни недействительным но истекший.
Сертификат недействителен (среди прочего), если подпись не соответствует сертификату. Он аннулируется, если центр сертификации явно отозвал сертификат.

Статус отзыва нельзя увидеть, просто взглянув на сертификат, так как отзыв сертификата не меняет его (невозможно: он уже открыт). Вместо этого нужно использовать Протокол статуса сертификата онлайн (OCSP) запросить статус или загрузить Список отзыва сертификатов (CRL) и проверьте сертификат по этому списку.

0

Другие решения

Отменено! = Истекло

Срок действия сертификата истек, когда validTo < currentDate, Сертификат, отозванный органом, выдавшим сертификат, означает, что этот сертификат нельзя принимать ни в каком электронном процессе.

Хотя срок действия сертификата можно проверить автоматически, отзыв сертификата — это ручное действие, например, из-за того, что данные владельца изменились или потому что сертификат был украден.

Центр сертификации публикует список отозванных сертификатов, которые можно проверить в режиме онлайн, используя CRL или запрос OCSP. Обычно сертификат включает URL CRL / OCSP.

обновленный

После просмотра PHP & Библиотека cURL кажется, что нет поддержки. Поэтому я боюсь, что вы не можете решить свой вопрос легко

Библиотека, предложенная @StephenUlrich, может быть опцией, но имеет недостаток, заключающийся в том, что CRL URL не извлекается из сертификата, поэтому вам необходимо знать, какой URL использовать для каждого типа сертификата. Кроме того, некоторые ЦС публикуют только OCSP.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector