我在Digital Ocean上有一台Ubuntu LAMP服务器,并设置了一个SSL证书(工作正常)。该网站通过https运行(http请求被重定向到https)。在我的一个PHP脚本中,我必须向本地服务器发送cURL请求。我基本上发送一个带有JSON数据的POST请求,这些数据将用于在另一端模板文档。简而言之,两端都托管在同一个站点:
https://example.com/form.php
https://example.com/templates/document.php
从form.php
向templates/document.php
发送数据时收到的cURL错误是:
SSL证书问题:无法获得本地颁发者证书
我已阅读至少20篇文章,告诉我将这些行添加到php.ini的原始行位置:
curl.cainfo="/etc/ssl/certs/cacert.pem"
openssl.cafile="/etc/ssl/certs/cacert.pem"
CA证书的位置如上所述,但cURL错误仍然存在。
我可以通过在cURL请求中强制CURLOPT_SSL_VERIFYPEER
到false
来绕过此错误。但是,我知道这不是生产模式下网站的选项。
是否无法对自己的主机执行此类SSL cURL请求?或者它是否可以为这个非常具体的请求实际禁用CURLOPT_SSL_VERIFYPEER
,因为它只是一个本地请求?
提前谢谢!
编辑:
向cURL请求添加详细选项会显示以下信息:
- 尝试123.456.789.01 ...
- 连接到example.com(123.456.789.01)端口443(#0)
- ALPN,提供http / 1.1
- 密码选择:ALL:!导出:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
- 成功设置证书验证位置:
- CAfile:/etc/ssl/certs/cacert.pem CApath:/ etc / ssl / certs
- SSL证书问题:无法获取本地颁发者证书
- 关闭连接0
但它似乎没有任何帮助。