Как получить информацию о сертификате SSL с CURL в PHP?

Композитные индексы работают точно так же, как и обычные индексы, за исключением того, что они имеют многозначные ключи.

Если вы определяете индекс в полях (a, b, c), записи сортируются сначала на a, то b, то c.

Пример:

| A | B | C |
-------------
| 1 | 2 | 3 |
| 1 | 4 | 2 |
| 1 | 4 | 4 |
| 2 | 3 | 5 |
| 2 | 4 | 4 |
| 2 | 4 | 5 |
23
задан Radek Suski 20 June 2010 в 21:42
поделиться

1 ответ

Нет. РЕДАКТИРОВАТЬ : Параметр CURLINFO_CERTINFO был добавлен в PHP 5.3.2. См. http://bugs.php.net/49253

Очевидно, эта информация предоставляется вам вашим прокси в заголовках ответов. Если вы хотите полагаться на это, вы можете использовать curl CURLOPT_HEADER option до true , чтобы включить заголовки в вывод.

Однако, чтобы получить сертификат, не полагаясь на прокси, вы должны сделать

<?php
$g = stream_context_create (array("ssl" => array("capture_peer_cert" => true)));
$r = fopen("https://www.google.com/", "rb", false, $g);
$cont = stream_context_get_params($r);
var_dump($cont["options"]["ssl"]["peer_certificate"]);

Вы можете изменить значение $ cont ["options"] ["ssl"] ["peer_certificate"] с расширением OpenSSL.

ИЗМЕНИТЬ : этот вариант лучше, поскольку он фактически не выполняет HTTP-запрос и не требует allow_url_fopen :

<?php
$g = stream_context_create (array("ssl" => array("capture_peer_cert" => true)));
$r = stream_socket_client("ssl://www.google.com:443", $errno, $errstr, 30,
    STREAM_CLIENT_CONNECT, $g);
$cont = stream_context_get_params($r);
var_dump($cont["options"]["ssl"]["peer_certificate"]);
19
ответ дан 29 November 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: