0

我刚刚开始使用 Zend 2,它(在本地)运行得非常好,但我无法让它通过 https 将数据传递到另一台服务器。

当谈到 ssl 证书时,我有点菜鸟,我认为这就是问题所在。我有一个 CERT、一个私钥和一个 CA 证书 - 这些被用于我们服务器上的一个虚拟主机域上的 ssl 证书,位置是:-

SSLCertificateFile /usr/local/psa/var/certificates/cert-####
SSLCACertificateFile /usr/local/psa/var/certificates/cert-####

在我读到的每个示例中,它们都在“/etc/ssl/certs/ca-bundle.pem”中。我的问题是如何将它们粘在一起以创建 zend 2 想要的这个 .pem 文件?我已经尝试创建一个包含所有 -----BEGIN CERTIFICATE----- 哈希/密钥 -----END CERTIFICATE----- 的 .pem 文件并将其命名为 ca-bundle.pem但现在 Apache 向我抛出“无法设置验证位置”错误,我该如何让它工作?这是我为适配器提供的代码片段:-

$adapter = new Zend\Http\Client\Adapter\Socket();
$adapter->setStreamContext(array(
'ssl' => array(
    'verify_peer' => true,
    'allow_self_signed' => false,
    'cafile' => '/usr/local/psa/var/certificates/ca-bundle.pem',
    'verify_depth' => 5,
    'CN_match' => 'https://www.mydomain.co.uk'
)
));

$client->setAdapter($adapter);

谢谢,

4

2 回答 2

0

首先是这个,但我猜你已经正确地做到了:如何从 .key 和 .crt 文件中获取 .pem 文件?

该错误Unable to set verify locations是因为 Apache 无法找到或读取密钥。

解决方案:

  1. 验证路径是否正确
  2. 确保 pem 文件可由 www 用户读取 Apache 运行
于 2014-05-20T11:41:35.357 回答
0

我在尝试安装 Composer 时收到了同样的错误。以下命令为我解决了这个问题。

sudo update-ca-certificates

我按照给定的说明在此服务器上安装了 SSL 证书,它适用于 https 连接。只有在尝试安装 Composer 时,我才看到“无法设置验证位置”错误。我希望这可以节省其他人花费我的研究时间!

于 2017-04-21T14:16:49.813 回答