php curl пустое certinfo с certinfo установленным в 1 - PullRequest
0 голосов
/ 24 октября 2018

Попытка получить certinfo не удалась.Вот код, который я использую:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://example.com');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CERTINFO, 1);
curl_setopt($ch, CURLOPT_CAINFO, '../cacerts.pem');
curl_setopt($ch, CURLOPT_CAPATH, '../cacerts.pem');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


print_r(curl_getinfo($ch));

Даже если CERTINFO установлен на 1 результат все еще пустой certinfo:

Array
(
    [url] => https://example.com
    [content_type] => 
    [http_code] => 0
    [header_size] => 0
    [request_size] => 0
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0
    [namelookup_time] => 0
    [connect_time] => 0
    [pretransfer_time] => 0
    [size_upload] => 0
    [size_download] => 0
    [speed_download] => 0
    [speed_upload] => 0
    [download_content_length] => -1
    [upload_content_length] => -1
    [starttransfer_time] => 0
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => 
    [certinfo] => Array
        (
        )

    [primary_port] => 0
    [local_ip] => 
    [local_port] => 0
)

Любая идея очто я должен сделать, чтобы это исправить?Большое вам спасибо!

1 Ответ

0 голосов
/ 24 октября 2018

По документам:

CURLOPT_CERTINFO

TRUE для вывода информации о сертификации SSL в STDERR при безопасных передачах.

Требуется, чтобы CURLOPT_VERBOSE был включен, чтобы иметь эффект.

Итак, добавьте:

curl_setopt($ch, CURLOPT_VERBOSE, true);

А затем фактически запустите запрос для получения вывода:

curl_exec($ch);

И затем обратите внимание, что вывод отправленв STDERR, а не curl_getinfo().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...