Запрос cURL / PHP выполняет 50 % времени

После полного поиска я не могу понять, почему запросы cURL, отправленные удаленному хосту с поддержкой SSL, успешны только в 50% или около того случаев в моем случае . Вот ситуация: у меня есть последовательность запросов cURL, все они отправлены на удаленный хост HTTPS в рамках одного скрипта PHP, который я запускаю с помощью PHP CLI. Иногда, когда я запускаю скрипт, запросы выполняются успешно, но по какой-то причине в большинстве случаев я получаю от cURL следующую ошибку:

* About to connect() to www.virginia.edu port 443 (#0)
*   Trying 128.143.22.36... * connected
* Connected to www.virginia.edu (128.143.22.36) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac
* Closing connection #0

Если я попробую еще несколько раз, я получу тот же результат, но после нескольких попыток запросы будут успешно выполнены. Повторный запуск сценария после этого приводит к ошибке, и шаблон продолжается. Исследование ошибки «alert bad record mac» не дало мне ничего полезного, и я не решаюсь винить в этом проблему с SSL, поскольку скрипт все еще запускается время от времени.

Я использую Ubuntu Server 10.04, с php5 и php5- curl, а также последняя версия openssl. Что касается конкретных параметров cURL, для CURLOPT_SSL_VERIFYPEER установлено значение false, а для CURLOPT_TIMEOUT и CURLOPT_CONNECTTIMEOUT установлено значение 4 секунды. Дополнительной иллюстрацией этой проблемы является тот факт, что такая же ситуация возникает на моей машине Mac OS X dev - запросы проходят только ~ 50% времени.

6
задан hakre 28 November 2012 в 12:32
поделиться