thinkphp报错“cURL error 60”SSL证书问题怎么解决
发布时间 - 2025-09-19 00:00:00 点击率:次答案是cURL error 60因SSL证书验证失败导致,可通过配置CA证书、指定证书路径或临时关闭验证解决,推荐下载cacert.pem并配置php.ini中curl.cainfo以实现安全稳定的HTTPS请求。
ThinkPHP 报错“cURL error 60”通常是由于 cURL 请求 HTTPS 接口时无法验证 SSL 证书导致的。这个错误的完整提示一般是:
SSL certificate problem: unable to get local issuer certificate
这意味着 PHP 的 cURL 扩展找不到受信任的 CA(证书颁发机构)证书来验证目标服务器的 SSL 证书。以下是几种常见且有效的解决方法。
1. 下载并配置 CA 证书文件
最安全的做法是让 cURL 使用正确的 CA 证书包进行验证。
• 前往 https://www./link/5fe4dadcdb001d8566cd20e6d8a20251 下载最新的 cacert.pem 文件• 将文件保存到你的服务器某个目录,例如:
D:\php\cacert.pem或
/etc/ssl/certs/cacert.pem
• 修改 php.ini 配置:
curl.cainfo = "D:\php\cacert.pem"(Windows)
curl.cainfo = "/etc/ssl/certs/cacert.pem"(Linux) • 重启 Web 服务(Apache/Nginx)和 PHP-FPM
这样全局的 cURL 请求都会使用可信的证书进行验证,安全性高。
2. 在 ThinkPHP 的 HTTP 客户端中手动设置证书路径
如果你使用的是 ThinkPHP 自带的 Http 或 Swoole\Http\Client,可以在请求时指定 CA 证书路径:
示例代码:
$response = \think\facade\Http::get('https://api.example.com', [
'verify' => '/path/to/cacert.pem' // 指向你下载的 cacert.pem
]);
或者关闭严格验证(仅开发环境建议):
$response = \think\facade\Http::get('https://api.example.com', [
'verify' => false
]);
3. 临时禁用 SSL 验证(不推荐生产环境)
如果只是测试或调试,可以临时跳过证书验证(有安全风险):
config('http.disallow_ssl_verify_requests', false); // ThinkPHP 6.x 中可设置
或在调用时直接关闭:
\think\facade\Http::send($url, ['verify' => false]);
⚠️ 注意:这会使请求容易受到中间人攻击,仅用于本地调试。
4. 检查系统时间和证书有效期
SSL 验证还依赖系统时间。如果服务器时间不准确(如相差几天),也可能导致证书被视为无效。
• Linux:运行date查看时间,使用
ntpdate pool.ntp.org同步
• Windows:确保时间与时区设置正确
基本上就这些。优先推荐第1种方式,从根本上解决问题,既安全又稳定。开发阶段可用第3种临时绕过,但上线前务必恢复验证。
# php
# thinkphp
# linux
# windows
# apache
# nginx
# cad
# ssl
# curl
# ai
# win
# swoole
# date
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Linux系统运维自动化项目教程_Ansible批量管理实战
如何自定义建站之星网站的导航菜单样式?
详解vue.js组件化开发实践
JS实现鼠标移上去显示图片或微信二维码
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Laravel中的Facade(门面)到底是什么原理
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
三星网站视频制作教程下载,三星w23网页如何全屏?
如何在IIS7中新建站点?详细步骤解析
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
活动邀请函制作网站有哪些,活动邀请函文案?
Python3.6正式版新特性预览
网站优化排名时,需要考虑哪些问题呢?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
重庆市网站制作公司,重庆招聘网站哪个好?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何正确下载安装西数主机建站助手?
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Internet Explorer官网直接进入 IE浏览器在线体验版网址
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
PythonWeb开发入门教程_Flask快速构建Web应用
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Laravel如何生成API文档?(Swagger/OpenAPI教程)
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
nodejs redis 发布订阅机制封装实现方法及实例代码
Java解压缩zip - 解压缩多个文件或文件夹实例
网易LOFTER官网链接 老福特网页版登录地址
个人网站制作流程图片大全,个人网站如何注销?
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
如何用AI帮你把自己的生活经历写成一个有趣的故事?
如何自定义建站之星模板颜色并下载新样式?
Laravel如何使用Livewire构建动态组件?(入门代码)
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
高防服务器:AI智能防御DDoS攻击与数据安全保障
Android GridView 滑动条设置一直显示状态(推荐)
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
详解Android——蓝牙技术 带你实现终端间数据传输
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
zabbix利用python脚本发送报警邮件的方法
如何在IIS服务器上快速部署高效网站?
如何获取免费开源的自助建站系统源码?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Android中AutoCompleteTextView自动提示
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
高性能网站服务器配置指南:安全稳定与高效建站核心方案


决,推荐下载cacert.pem并配置php.ini中curl.cainfo以实现安全稳定的HTTPS请求。