[API Error: 生成数据错误: fetch failed:certificate is not yet valid]

我在使用iflow cli的时候,给指令后,报错:[API Error: 生成数据错误: fetch failed:certificate is not yet valid],我已经认证登录了,还需要什么证书?看提示是需要证书?

一样的错误,安装0.5.2 的 cli 后,任何指令都报 ✕ [API Error: generate data error: fetch failed:unable to get local issuer certificate]

现在使用的电脑系统、终端工具和模型是什么?

也辛苦提供下现在使用的电脑系统、终端工具和模型

windows11 上安装的虚拟机:内核Linux localhost.localdomain 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 22:20:27 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

版本:Rocky Linux release 9.7 (Blue Onyx)

iflow是最新版本,模型不管哪个都一样。

macOS sequoia
iflow-cli 0.5.2

模型 qwen3 和 glm-4.7 都试过了

有的模型报错是:[API Error: 生成数据错误: fetch failed:certificate is not yet valid]
有的模型报错是:[API Error: 生成数据错误: ]

好的 我们迅速排查一下,是今天刚发生的吗

有好几天了,前面懒得弄,因为我windows11 也开了一个iflow可以用,前面就没有管了

我们刚才看后台模型监控是正常的,尝试卸载重装一下吧,如果还是有问题可以提供下日志文件

应该是虚拟机时间的问题,同步一下虚拟机时间试试?

logs.json 里面[
{
“sessionId”: “session-cfe2a03f-c2cb-47c9-862d-677a3d634a49”,
“messageId”: 0,
“type”: “user”,
“message”: “pwd”,
“timestamp”: “2026-01-23T07:00:51.507Z”
}
]timestamp 确实不对 ,应该如何处理

bash 里面 date 命令输出时间是正确的,和 node → new date() 时间不符合 ,是UTC 时区

我让iflow生成的解决办法,你可以试一下。

:white_check_mark: 解决方案

请让用户在 Rocky Linux 虚拟机中执行以下命令:

:one: 检查当前系统时间

查看当前系统时间

date

查看硬件时钟

hwclock --show

查看时区设置

timedatectl

:two: 同步系统时间(推荐方案)

方案 A:使用 chronyd(Rocky Linux 9 默认)

检查 chronyd 服务状态

sudo systemctl status chronyd

如果未启动,启动服务

sudo systemctl start chronyd
sudo systemctl enable chronyd

强制立即同步时间

sudo chronyc makestep

验证时间同步状态

chronyc tracking

方案 B:手动设置时间(临时方案)

手动设置正确的时间(格式:YYYY-MM-DD HH:MM:SS)

sudo date -s “2026-01-23 14:30:00”

将系统时间写入硬件时钟

sudo hwclock --systohc

验证

date

方案 C:使用 ntpdate(备选方案)

安装 ntpdate(如果未安装)

sudo dnf install -y ntpdate

同步时间

sudo ntpdate pool.ntp.org

或使用阿里云 NTP 服务器(国内更快)

sudo ntpdate ntp.aliyun.com

:three: 配置自动时间同步

编辑 chronyd 配置:
sudo vi /etc/chrony.conf

确保包含以下 NTP 服务器(建议使用国内服务器):

阿里云 NTP

server ntp.aliyun.com iburst

或者使用 pool.ntp.org

server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst

重启服务:
sudo systemctl restart chronyd

:four: 验证问题已解决

时间同步后,重新运行 iFlow CLI:

确认时间正确

date

测试 HTTPS 连接

curl -v https://api.openai.com 2>&1 | head -20

运行 iFlow

iflow

:wrench: 虚拟机特定配置

对于 VMware 虚拟机:
确保 VMware Tools 已安装并启用时间同步:

检查 VMware Tools 状态

vmware-toolbox-cmd -v

启用时间同步

vmware-toolbox-cmd timesync enable

对于 VirtualBox 虚拟机:
在虚拟机设置中启用时间同步,或安装 Guest Additions。

对于 KVM/QEMU 虚拟机:
确保使用 qemu-guest-agent:
sudo dnf install -y qemu-guest-agent
sudo systemctl start qemu-guest-agent
sudo systemctl enable qemu-guest-agent

:clipboard: 快速诊断脚本

可以让用户运行这个一键诊断脚本:
#!/bin/bash
echo “=== 系统时间诊断 ===”
echo “当前系统时间: $(date)”
echo “硬件时钟: $(sudo hwclock --show)”
echo “”
echo “=== 时间同步状态 ===”
timedatectl
echo “”
echo “=== Chronyd 状态 ===”
systemctl status chronyd --no-pager
echo “”
echo “=== 测试 HTTPS 证书 ===”
curl -v https://www.google.com 2>&1 | grep -i “certificate|date”

:bullseye: 根本原因总结

这个问题的核心是:

  • 虚拟机的系统时间早于当前实际时间
  • 当 iFlow 尝试连接 HTTPS API 时,服务器的 SSL 证书的生效时间(notBefore)晚于虚拟机的系统时间
  • Node.js 的 TLS 验证检测到"证书尚未生效",拒绝建立连接

✦ 解决方法就是确保虚拟机的系统时间正确且保持同步。

我是macOS sequoia
iflow-cli 0.5.2 不是虚拟机

我本机的date 是对的,node → new Date() 有时区问题

grep -r “timestamp\|toISOString” ./@iflow-ai/iflow-cli 文件太多

同步时间后,看起来是正常了,感谢!

我的问题怎么处理?

稍等让技术同学看下

有结果了吗?