开发项目curl发起https请求,cURL error 60: SSL certificate problem: unable to get local issuer cert提示找不到本地证书错误

个人开发的时候,在新建的环境,使用curl发起https请求,基本都是错误,需要专门配置,配置完成之后,经常会跟随一个小问题,cURL error 60: SSL certificate problem: unable to get local issuer certificate,找不到证书,下面简要说一下配置过程和证书路径,

1.开启https请求

开启:php_openssl,在php.ini文件中,搜索此项,取消注释即可,

2.配置证书,此处有两种方式

第一种使用代码模式:

//解决方案一 禁用证书验证
$params[CURLOPT_SSL_VERIFYPEER] = false;
$params[CURLOPT_SSL_VERIFYHOST] = false;

//解决方案二 设置证书
curl_setopt($ch,CURLOPT_CAINFO,'证书路径/证书文件'); 

缺点:一个是没有证书,另一个当我们引用一些SDK不需要自己编写curl请求时,需要修改SDK非常麻烦

第二种在php.ini配置:

openssl.cafile = "D:\phpstudy_pro\Extensions\php\php7.1.9nts\ext\cacert.pem"

# curl.cainfo = "D:\phpstudy_pro\Extensions\php\php7.1.9nts\ext\cacert.pem"

后面是你的pem证书路径即可,curl.cainfo这一项可以开启或者不开启,看个人需要。

另外需要注意:

在5.3之前的php版本中,环境不会自行去php.ini中读取openssl.cafile与curl.cainfo两个配置项,所以在5.3以前版本的php.ini文件中都没有预设这两项。在5.3+以上版本,环境会自动去读取php.ini的openssl.cafile与curl.cainfo两个配置项,所以我们经常能看到php.ini文件已经预设了这两项,只需要开启,填写正确的路径即可。

pem证书可以去此地址自行下载:https://curl.haxx.se/docs/caextract.html

你可能感兴趣的:(php,脚本)