2015-02-27 2 views
0

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

В журналах Drupal я вижу ошибки следующим образом:

cURL error: SSL certificate problem: unable to get local issuer certificate

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

  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, но по-прежнему получаю ту же ошибку о том, как он не может получить сертификат локального эмитента.

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

ответ

0

Проблема заключается в том, что корневой ЦС для https://secure.authorize.net/gateway/transact.dll (и, возможно, другие защищенные URL-адреса на authorize.net) не включен в комплект поставки ЦС http://curl.haxx.se/ca/cacert.pem, по уважительной причине: если вы заходите на страницу и смотрите детали корня CA в пути к сертификату вы заметите, что отпечаток 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/, в которой объясняется, что этот корневой сертификат больше не поддерживается. Решение предоставляется по аналогичному вопросу: How comes authorize.net uses a certificate that is signed with a CA that is not in the well known curl.haxx.se/ca/cacert.pem list?