Intereting Posts
Codeigniter Допустимый размер памяти, израсходованный при обработке больших файлов PHP: значение SQL как имя файла Какое преимущество использует фреймворк, такой как CodeIgniter или CakePHP, с использованием PHP? Перевод Symfony2 с использованием trans_default_domain Проверьте, содержит ли строка одно из нескольких слов Как заставить IIS 7 анализировать js-файл также как файл PHP? Загрузка логотипа с использованием Codeigniter, не работающего над editform Получить часть строки, если с условным префиксом Нужно руководство для начала с Zend ACL Удалите / замените поле имени пользователя по электронной почте с помощью FOSUserBundle в Symfony2 / Symfony3 Как обрабатывать push-уведомления API Google Calendar? читать содержимое внешней веб-страницы и получать конкретные элементы Как использовать функцию внутри строки? libphonenumber для php Хорошо или плохо для абстрактного класса реализовать интерфейс?

Ошибка SSL-сертификата Drupal Curl

Мы используем сайт Drupal / Ubercart, и недавно я заметил, что платежные запросы не работают.

В журналах Drupal я вижу ошибку:

Ошибка cURL: проблема с сертификатом SSL: не удалось получить сертификат локального эмитента

Я нашел ряд решений и попытался их реализовать, но без каких-либо результатов. Некоторые вещи, которые я пробовал:

  1. Изменение файла /etc/php5/fpm/php.ini для включения строки curl.cainfo = /srv/keys/cacert.pem (который является файлом, загруженным с http://curl.haxx.se/ca/cacert .pem ).
  2. Добавление кода в файл uc_authorizenet.module для указания cainfo напрямую: curl_setopt($ch, CURLOPT_CAINFO, "/srv/keys/cacert.pem"); ,

Прежде чем предпринимать эти шаги, я убедился, что пакет ca-certificates установлен и обновлен. После каждого изменения я перезапустил php5-fpm и nginx , но у меня по-прежнему появляется такая же ошибка о том, как он не может получить сертификат локального эмитента.

Спасибо за любую помощь!

Проблема заключается в том, что корневой ЦС для https://secure.authorize.net/gateway/transact.dll (и, возможно, другие защищенные URL-адреса на authorize.net) не включен в комплект CA http://curl.haxx.se /ca/cacert.pem , по уважительной причине: если вы заходите на страницу и смотрите подробности корневого центра сертификации в пути к сертификату, вы заметите, что отпечаток Sha1 составляет 99 a6 9b e6 1a fe 88 6b 4d 2b 82 00 7c b8 54 fc 31 7e 15 39. Поиск в Интернете приведет вас к этой странице https://blog.mozilla.org/security/2014/09/08/phasing-out-certificates-with-1024-bit-rsa-keys/ , что объясняет, что это корневому сертификату больше не доверяют. Решение предоставляется по аналогичному вопросу: Как работает authorize.net использует сертификат, подписанный с центром сертификации, который не находится в известном списке curl.haxx.se/ca/cacert.pem?