Intereting Posts
Получить все дочерние, внуки и т. Д. Узлы под родителями, используя php с результатами запроса mysql mysql, где в разделе с предложением select после в пункте Шаги для отладки php Curl на окнах PHP mySQL, объединяющий более двух таблиц вместе с похожими идентификаторами? как избежать строки в mysqli Как я могу проверить форму POST, только содержит буквы в нескольких полях, используя preg_match? Отменить загрузку больших загрузок после чтения заголовков пригласительный календарь .ics не работает в выпуске outlook.com Как перенаправить пользователей на основе случайной строки URL? PHP аналогичный_текст () в java PHP: самый быстрый способ обработки неопределенного ключа массива Добавление дополнительного текста поиска в поисковый запрос MediaWiki с помощью InputBox php md5, который дает тот же результат, что и c # многоуровневое меню из базы данных в codeigniter Zip Stream в PHP

Обновление запроса PHP cURL с SSLv3 на TLS ..?

Из-за недавней уязвимости, обнаруженной в SSLv3 , многие поставщики веб-сервисов (например, PayPal, Facebook, Google) отключают это и хотят, чтобы мы использовали TLS вместо этого. У меня есть немного проблемы с выяснением, как это сделать.

В настоящее время я использую следующую функцию для обработки моих запросов cURL.

function CURLRequest($Request = "", $APIName = "", $APIOperation = "", $PrintHeaders = false) { $curl = curl_init(); curl_setopt($curl, CURLOPT_VERBOSE, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_TIMEOUT, 30); curl_setopt($curl, CURLOPT_URL, $this->EndPointURL); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $Request); if($this->APIMode == 'Certificate') { curl_setopt($curl, CURLOPT_SSLCERT, $this->PathToCertKeyPEM); } $Response = curl_exec($curl); /* * If a cURL error occurs, output it for review. */ if($this->Sandbox) { if(curl_error($curl)) { echo curl_error($curl).'<br /><br />'; } } curl_close($curl); return $Response; } 

Однако, когда я пытаюсь попасть в изолированную программную панель PayPal, в которой они уже отключены, я получаю ошибку cURL: ошибка: 14077410: процедуры SSL: SSL23_GET_SERVER_HELLO: отказ в сбое оповещения sslv3

Информация, которую я обнаружил, заключается в том, что мне просто нужно изменить это, чтобы использовать TLS вместо SSL, а другие ответы, которые я видел, просто делают это, добавляя параметр curl для моей функции …

 curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); 

Однако я добавил эту опцию, и я все равно получаю тот же результат. Любая информация о том, как я могу получить эту работу, будет очень благодарна. Благодаря!

Скопировано из: Ошибка SSL не может измениться на TLS

Попробуйте добавить curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); к вашему коду.

Это будет работать, если вы используете cURL на основе OpenSSL libssl, но не на основе nss .

Лучшее решение до тех пор, пока Paypal не обновит свой основной SDK, было бы переопределить CURLOPT_SSL_CIPHER_LIST непосредственно в вашем приложении. Таким образом, вам не нужно напрямую вмешиваться в пакет sdk-core-php, и вы сможете бесплатно обновить его в будущем.

Вы можете добавить что-то вроде следующего в логику загрузки или обработки платежей приложения:

 PPHttpConfig::$DEFAULT_CURL_OPTS[CURLOPT_SSL_CIPHER_LIST] = 'TLSv1'; 

Просто убедитесь, что вы подробно прокомментируете его и не забывайте вынимать его позже, когда проблема была исправлена ​​в ядре.

Я только что решил обновить библиотеку nss через терминал.

Если вышеуказанное не помогает, проверьте версию OPENSSL. Вероятно, из-за версии OPENSSL <= 0.9.8. Обновление для PHP7 помогает, что связано с более высокой версией OPENSSL.