2***@qq.com
2***@qq.com
  • 发布:2026-05-15 10:29
  • 更新:38 分钟前
  • 阅读:43

【报Bug】Error: certificate has expired

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

操作步骤:

新建uni-starter项目,运行后报错。绑定的是支付宝云免费版

预期结果:

不报错

实际结果:

报错

bug描述:

新建uni-starter项目,运行后报错。绑定的是支付宝云免费版

接口:http://127.0.0.1:7000/cloudfunctions/DCloud-clientDB
错误信息:
code:"SYSTEM_ERROR"
errCode:"SYSTEM_ERROR"
errMsg:"Error: certificate has expired"
message:"Error: certificate has expired"
systemInfo:[]

2026-05-15 10:29 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

作为 DCloud 官方人员,我对这份 bug 反馈进行以下评审:


一、反馈内容完整性评审

  1. 标题:简明扼要,直接指出了错误信息,符合要求。
  2. 描述:提到“新建 uni-starter 项目,运行后报错。绑定的是支付宝云免费版”,基本说明了场景,但缺少关键的运行环境信息,例如:
    • HBuilderX 版本
    • 运行时选择的平台(比如是运行到浏览器、小程序还是 App?)
    • 是否连接的是本地云函数还是云端云函数
    • 支付宝云服务空间是否已正常创建、有效期是否正常
      这些信息对于官方人员快速定位问题很重要,需要补充。
  3. 代码示例:无。虽然该错误不一定需要代码示例,但若能提供 uni-starter 的初始化配置或相关云函数调用代码,有助于更快判断。
  4. 复现步骤:仅“新建 uni-starter 项目,运行后报错”,过于笼统。应详细说明操作步骤,例如:通过 HBuilderX 新建 uni-starter 模板 → 关联支付宝云免费版空间 → 运行到内置浏览器/微信开发者工具 → 观察控制台输出。
  5. 预期结果:“不报错”,合理。
  6. 实际结果:给出了具体的错误信息,包括接口地址、错误码、错误消息,这一点很清晰。
  7. 分类信息:未提供任何版本号、运行平台、node 版本等分类信息,这会导致问题无法被准确归类与分配。

结论:反馈缺少必要的运行环境与版本信息,复现步骤不够详细,建议补充后再提交。


二、Bug 是否成立的分析

根据知识库中的内容,certificate has expired 是一个已有明确说明的问题。在 uniCloud 的文档中(云函数通过 https 访问其他服务器时出现“certificate has expired”)指出:

Let's Encrypt 于 2021 年 9 月 30 日根证书过期并切换到新版根证书。此次过期行为引起 nodejs8 请求使用了 Let's Encrypt 证书的网站时出现 certificate has expired 错误。

解决方案

  • 推荐将云函数升级到 nodejs12 或更高版本(删除旧云函数,配置 node 版本后重新上传)。
  • 或者(不推荐)在 uniCloud.httpclient.request 中使用 rejectUnauthorized: false

在 uni-starter 项目中,客户端调用 DCloud-clientDB 接口时,底层可能通过云函数发起 https 请求,如果云函数运行环境仍然是 nodejs8,就可能触发该错误。支付宝云免费版默认的云函数运行环境需要检查是否支持 nodejs12,但从知识库来看,支付宝云是支持 nodejs12 的。

另外,在 ask 社区中也有类似反馈(提问 166725),最终原因是服务器端 Let's Encrypt 证书配置问题,升级 nodejs12 后解决。

因此,该 bug 可能成立,但更可能是环境配置问题(云函数 nodejs 版本过低),而非 uni-starter 本身的缺陷。需要用户检查云函数的 package.jsoncloudfunction-configruntime 字段,确保为 "Nodejs12" 或更高(支付宝云已支持 Nodejs16)。

如果已配置 nodejs12 仍出现此错误,则可能是所访问的第三方服务证书确实过期,需要检查目标服务的证书状态。


三、是否涉及基本概念问题

不涉及。错误本身是云函数运行环境与证书兼容性的问题,已在官方文档中有说明,不是 uni-app 或 uniCloud 的基本使用概念错误。


四、建议与后续操作

  1. 请用户补充 HBuilderX 版本、运行平台、云函数 nodejs 版本配置(uniCloud/cloudfunctions/ 下各云函数的 package.json 中的 cloudfunction-config.runtime)。
  2. 尝试将相关云函数的 nodejs 版本升级到 "Nodejs12""Nodejs16",重新上传部署后再测试。
  3. 如果仍报错,检查支付宝云服务空间是否正常(有效期、未欠费),以及是否使用了自定义域名且证书过期。
  4. 可参考文档:云函数通过 https 访问其他服务器时出现“certificate has expired”

总结:目前反馈信息不完整,无法直接确认为有效 bug,但根据知识库判断,大概率是云函数 nodejs 版本过低导致。请按照上述建议排查并补充信息,若问题依旧,可重新提交带完整环境的反馈。

内容为 AI 生成,仅供参考
DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

问题已修复。

要回复问题请先登录注册