【问题标题】:error setting certificate verify locations错误设置证书验证位置
【发布时间】:2017-06-08 12:41:11
【问题描述】:
OS: Ubuntu 16.01
PHP: 7/0

根据一些谷歌搜索和 StackOverflow 上的问题输入,我设置了以下 Curl 选项:

CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,   
CURLOPT_CAINFO  = '/etc/ssl/certs',

我验证了 /etc/ssl/certs 目录存在,并且是最新的。

我还修改了文件/etc/php/7.0/cli/php/ini:

openssl.capath='/etc/ssl/certs'

当我尝试进行 Curl 调用时,我收到以下错误:

[error] => error setting certificate verify locations:
    CAfile: /etc/ssl/certs
    CApath: /etc/ssl/certs

我将 /etc/ssl/certs 中的权限编辑为:

rwxr-xr-x

但我遇到了同样的错误。

有什么想法吗?

【问题讨论】:

    标签: php curl


    【解决方案1】:

    CURLOPT_CAINFO 仅应在您要使用的证书仅在一个文件中时设置。如果您想使用整个目录(就像您通常希望在 Ubuntu 上那样),只需设置 CURLOPT_CAPATH 值。

    来自the docs

    CURLOPT_CAINFO:保存一个或多个证书以验证对等点的文件的名称。

    CURLOPT_CAPATH:包含多个 CA 证书的目录。

    【讨论】:

      猜你喜欢
      • 2013-11-10
      • 2011-10-22
      • 2015-11-17
      • 2015-08-24
      • 2018-10-25
      • 1970-01-01
      • 2015-07-26
      • 2018-07-11
      • 2017-09-22
      相关资源
      最近更新 更多