Nach der Suche überall, ich kann nicht verstehen, warum cURL Anfragen an einen remote SSL-fähigen Host nur 50% der Zeit in meinem Fall erfolgreich sind. Hier ist die Situation: Ich habe eine Reihe von cURL-Anfragen, die alle an einen HTTPS-Remote-Host in einem einzigen PHP-Skript, das ich mit dem PHP-CLI ausführen, ausgestellt. Gelegentlich, wenn ich das Skript ausführen die Anforderungen erfolgreich ausgeführt, aber aus irgendeinem Grund die meiste Zeit ich es laufen bekomme ich folgende Fehler von Curl:cURL/PHP-Anfrage führt 50% der Zeit aus
* 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
Wenn ich versuche, wieder ein paar Mal ich das gleiche Ergebnis zu erhalten, Aber nach ein paar Versuchen werden die Anfragen erfolgreich durchgeführt. Wird das Skript danach erneut ausgeführt, führt dies zu einem Fehler, und das Muster wird fortgesetzt. Die Untersuchung des Fehlers "alert bad record mac" hat mir nichts geholfen, und ich zögere, es einem SSL-Problem vorzuwerfen, da das Skript immer noch gelegentlich läuft.
Ich bin auf Ubuntu Server 10.04, mit php5 und php5-curl installiert, sowie die neueste Version von openssl. In Bezug auf cURL-spezifische Optionen ist CURLOPT_SSL_VERIFYPEER auf "false" gesetzt und CURLOPT_TIMEOUT und CURLOPT_CONNECTTIMEOUT sind auf 4 Sekunden festgelegt. Dieses Problem wird noch dadurch verdeutlicht, dass die gleiche Situation auf meinem Mac OS X-Rechner auftritt - die Anfragen durchlaufen nur ~ 50% der Zeit.
Sie könnten Google "Fehler 140943FC" –
glauben Sie mir, ich tat. Ich habe sogar überprüft, dass ich Apache in Prefork MPM im Gegensatz zu Worker-Threads ausgeführt habe, da es offensichtlich einen Fehler gibt, der mit der Worker-Thread-Version zusammenhängt (Prefork wird bereits ausgeführt, so dass es nicht half). – mquinn
Falsche MAC-Adresse bezieht sich nicht auf die MAC-Adresse der Netzwerkschnittstelle. Es bezieht sich auf ein Problem mit dem "Message Authentication Code" –