Мне нужна такая же команда python в php - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть python код, который отправляет запрос curl на устройство Huawei USG, этот код может без проблем получать информацию, но мой проект - проект php, поэтому я попытался отправить запрос Curl на тот же Huawei USG, но я получить эту ошибку

ошибка: 14094410: подпрограммы SSL: ssl3_read_bytes: сбой квитирования оповещения sslv3

Я думаю, что эта проблема для TLSV1_3, мне нужно предотвратить отправку кода ее как привет пакет. это команда pythin, которая выполняет эту задачу, (Prevent TLSV1_3)

context.options |= ssl.OP_NO_TLSV1_3

ClientHello не содержит "Поддерживаемая версия: TLS1.3
Мне нужна та же команда для php, как я могу сделать это в php, потому что, если я удалил эту строку из кода, я получу ту же ошибку, что и в php code

1 Ответ

0 голосов
/ 06 февраля 2020

Вы должны иметь возможность принудительно указать указанную c версию SSL / TLS, используя опцию CURLOPT_SSLVERSION Curl. В отличие от реализации Python, я не думаю, что возможно исключить конкретную версию, но если вы знаете, что TLS 1.2 будет работать, вы можете форсировать ее с помощью:

$curl = curl_init();
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
// ...

Доступные значения перечислены рядом с блоком CURLOPT_SSLVERSION здесь на справочной странице curl_setopt :

Один из CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) или CURL_SSLVERSION_TLSv1_2 (6)

Примечание:.

Лучше всего не устанавливать этот параметр и использовать его по умолчанию. Установка его на 2 или 3 очень опасна, учитывая известные уязвимости в SSLv2 и SSLv3.

...