すべてを検索した後、私のケースでは、リモートSSL対応ホストに発行されたcURLリクエストが50%程度しか成功しなかった理由を理解できません。状況は次のとおりです。PHP CLIを使用して実行する1つのPHPスクリプト内で、一連のcURLリクエストがHTTPSリモートホストに発行されています。時折、私は要求が正常に実行されますが、何らかの理由で時間のほとんどは、私はそれを実行するスクリプトを実行したときに、私のcURLから次のエラーを取得する:cURL/PHPリクエストが時間の50%を実行する
* 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
私は再び、私は同じ結果を得る数回をしようとすると、何度か試してみると、リクエストは正常に処理されます。それ以降スクリプトを実行すると、エラーが発生し、パターンが続行されます。エラー「アラート・バッド・レコード・マック」を調べても何の助けにもならなかったし、スクリプトがまだ実行されていないのでSSL問題に責任を負うことを躊躇する。
私はUbuntu Server 10.04にphp5とphp5-curlをインストールし、最新のopensslをインストールしています。 cURL固有のオプションでは、CURLOPT_SSL_VERIFYPEERはfalseに設定され、CURLOPT_TIMEOUTとCURLOPT_CONNECTTIMEOUTの両方が4秒に設定されます。この問題をさらに詳しく示すことは、私のMac OS Xの開発マシンでも同じような状況が発生するということです。リクエストは時間のわずか50%しか過ぎません。
あなたはGoogleに「エラー140943FC」を入力してください。 –
私はそう信じています。私は、ワーカースレッドとは対照的に、プリフォークMPMでApacheを実行していることを確認しました。これはワーカースレッドバージョン(これは助けにならなかったので、すでに実行しています)に起因するバグです。 – mquinn
不正なレコードMACは、ネットワークインターフェイスのMACアドレスを参照していません。それは "メッセージ認証コード" –