【发布时间】:2017-12-02 03:34:52
【问题描述】:
我有两种环境,一种是开发环境,另一种是反映开发环境的生产环境。
在开发环境中,我正在尝试使用 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'
));
我仍然得到错误。
所以我认为 Zend 在某处使用了证书存储(或者我错误地设置了sslcapath),我想检查 CA 是否在开发环境的证书存储中。
我的 CA 在两个系统上都位于 /etc/ssl/certs。
还有什么可以解释为什么它可以在生产系统上运行,而不是在开发系统上运行,尽管它们是相同的?
【问题讨论】:
标签: php ssl zend-framework certificate ssl-certificate