php出现SSL certificate problem: unable to get local issuer certificate的解决办法

当在本地使用curl或者一些其它封装好的http类库或组件(如php界 知名的 http客户端 Guzzle)需要访问https时,如果本地没有配置证书,会出现SSL certificate problem: unable to get local issuer certificate的报错信息。
解决办法一(环境配置方面)

①、下载pem文件

②、将文件拷贝到任意目录下,这里我拷贝到了D:/Visual-NMP-x64/Bin/PHP/php-7.4.13-nts-x64目录下

③在php.ini配置文件中,配置curl.cainfo配置项的值 例如 我这里配置为:curl.cainfo ="D:/Visual-NMP-x64/Bin/PHP/php-7.4.13-nts-x64/cacert.pem"

④、最后重启环境即可。
解决办法二(代码层面)

①、如果是使用curl相关函数的话,那么可以进行如下设置:

如果是直接使用php内置的curl相关函数的话,那么 可以在curl相关代码中添加下面的代码,表示不检查ssl(这种方式一般用于本地调试。)

php 复制代码
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //停止验证证书(一般只需要设置此项为false即可)
 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); //设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name)。译者注:公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。 设置成 2,会检查公用名是否存在,并且是否与提供的主机名匹配。 在生产环境中,这个值应该是 2(默认值)。这里我们也可以直接设置为false
 
 
//如果不是有什么特别细节的问题的话,我们一般只需要设置上面哪一行代码 即 CURLOPT_SSL_VERIFYPEER选项 为false 即可。

②、如果是使用Guzzle类库的话,代码可以这么设置,如下所示:

php 复制代码
$client = new GuzzleHttp\Client();
 
//以下是让Guzzle取消ssl证书验证!!!
$client->request('GET', '/', ['verify' => false]); //取消ssl验证
 
 
 
 
//以下是让Guzzle使用ssl证书验证!!!别看错了!!!!!!
// 使用系统的CA包 (默认设置)
$client->request('GET', '/', ['verify' => true]); //这个可以不设置,因为默认就是true
 
//使用磁盘上自定义的SSL证书
$client->request('GET', '/', ['verify' => '/path/to/cert.pem']);
 
 
//注意:Guzzle以上代码只在Guzzle6的版本中使用过,如果是其它低版本或者Guzzle升级了版本,写法可能有变动,记得查阅官方文档即可
相关推荐
游戏开发爱好者839 分钟前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
zorro_z41 分钟前
ThinkPHP8学习篇(十六):错误调试与辅助组件
php
王码码203544 分钟前
Flutter for OpenHarmony 实战之基础组件:第三十一篇 Chip 系列组件 — 灵活的标签化交互
android·flutter·交互·harmonyos
黑码哥1 小时前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder
亓才孓1 小时前
[JDBC]元数据
android
独行soc1 小时前
2026年渗透测试面试题总结-17(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
全栈工程师修炼指南1 小时前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
金融RPA机器人丨实在智能2 小时前
Android Studio开发App项目进入AI深水区:实在智能Agent引领无代码交互革命
android·人工智能·ai·android studio
科技块儿2 小时前
利用IP查询在智慧城市交通信号系统中的应用探索
android·tcp/ip·智慧城市
独行soc2 小时前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮