私は2つの環境を持っています.1つは開発環境、もう1つは開発環境を反映した環境です。Zendフレームワークはどこでデフォルトの証明書ストアを保持しますか?
開発環境では、zendフレームワークを使用してsslサーバーに接続しようとしていますが、次の意味のないエラーメッセージが表示されます。
Unable to Connect to ssl://test.server.com:443. Error #0:
tcpdumpを使用すると、不明なCAが原因でエラーが検出されました。ここで
は私のコードです:
require_once 'Zend/Http/Client.php';
$uri = 'https://test.server.com';
$client = new Zend_Http_Client($uri);
$client->setHeaders(Zend_Http_Client::CONTENT_TYPE, 'application/json');
$response = $client->setRawData($json)->setEncType('application/json')->request('PUT');
私はsslcapath
を指定していない、しかし、私の生産システムは、それなしで正常に動作します。私はsslcapath
、
$client = new Zend_Http_Client($uri, array(
'sslcapath' => '/etc/ssl/certs'
));
を設定-do-とき、私はまだエラーを取得します。 私はZendがどこかで証明書ストアを使用していると思います。あるいは、sslcapath
を間違って設定しています。CAが開発環境の証明書ストアにあるかどうか確認したいと思います。
私のCAは両方のシステムで/etc/ssl/certs
です。
なぜ同じであるにもかかわらず、本番システムでは動作しますが、開発では動作しない理由が説明されていますか?
'Zend_Http_Client_Adapter_Socket'はデフォルトですので、私のコードをあなたが書いたコードと同じにしませんか? また、 '/ etc/ssl/certs'パスを明示的に設定しても、それでも私の証明書は認識されません。 –