4

Mac OS を OS X 10.9 にアップデートしました。
OS X 10.9/Apache 2.2.24/PHP 5.4.17 cURL 経由でリモート サーバーに接続しようとすると、エラー (... への接続で不明な SSL プロトコル エラー) が発生します。

DEFINE("SSL_CERTTYPE", "PEM");  
DEFINE("SSL_KEYPASS", "xxxxxxxxx");
DEFINE("SSL_CERT", $_SERVER['DOCUMENT_ROOT']."/certs/mycert.pem"); 
DEFINE("SSL_KEY", $_SERVER['DOCUMENT_ROOT']."/certs/mycert.key");

$options = array
(
    CURLOPT_URL            => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HEADER         => false,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_VERBOSE        => false,
    CURLOPT_SSL_VERIFYHOST => false,
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_SSLCERT        => SSL_CERT,
    CURLOPT_SSLKEY         => SSL_KEY,
    CURLOPT_SSLKEYPASSWD   => SSL_KEYPASS,
    CURLOPT_SSLCERTTYPE    => SSL_CERTTYPE,
);

SSLVERSION を 2 と 3 の両方に設定しようとしましたが、それでもエラーが発生します。

これが Apache の問題なのか PHP の問題なのかは不明です。ガイダンスをいただければ幸いです。*これは、更新前の 10.8 で動作していたことにも注意してください。

4

1 に答える 1

3

これは実際にはカールと関係があります: http://curl.haxx.se/mail/archive-2013-10/0036.html

どうやら Apple は OpenSSL から独自のセキュア トランスポート プロトコルに移行したため、curl のクライアント側証明書の処理が壊れているようです (接続に必要な場合)。これまでに見つけた唯一の回避策は、クライアント側の証明書要件を削除することですが、残念ながらこれは理想的ではありません。

- アップデート -

キーチェーン アクセスを使用してこれを機能させることができるはずですが、これまでのところできませんでした。

于 2013-10-24T20:17:13.447 に答える