После полного поиска я не могу понять, почему запросы 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 - запросы выполняются только ~ 50% времени.