2017-01-08 2 views
0

Я довольно новичок в PHP, но изучаю и пытаюсь создать простую веб-страницу, отображающую статус сертификата SSL. (например, дата экспирации) Также каждый сервер (общее имя) и порты хранятся в БД MySQL и считываются PDO. Обычно это работает, если сервер возвращает действительный сертификат. Однако он не загружается, когда срок действия сертификата истек, или по другим причинам, таким как несогласованное общее имя.Как использовать «openssl_x509_parse» для сертификата с истекшим сроком действия/ошибкой в ​​PHP?

код, как показано ниже:

<?php 
    $get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE))); 
    $read = stream_socket_client("ssl://".$row["domain"].":".$row["port"], $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $get); 
    $cert = stream_context_get_params($read); 
    $certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']); 
?> 

Могу ли я иметь в виду, как решить эту проблему, пожалуйста?

Спасибо!

ответ

0

Глупый сам, нашел решение от переполнения стека. SSL error SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Модифицированный первая строка:

$get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE))); 

в:

$get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE, 'verify_peer' => false, 'verify_peer_name' => false))); 
Смежные вопросы