Linux 服务器时间同步失败,导致证书失效

你是否遇到过这种情况:用 curl 访问 HTTPS 网站时提示 certificate expiredcertificate is not yet valid
浏览器也警告证书无效。
直接排查证书本身没问题,那多半是 Linux 服务器系统时间偏差过大 导致证书有效期校验失败。
本文就从零开始,带你彻底修复时间同步问题,让 SSL/TLS 证书恢复正确验证。

先确认问题:你的系统时间准吗?

在动手修复前,先用几个命令看清现状。
登录服务器后依次执行:

date

查看当前系统时间。
接着用 timedatectl 获取更详细的状态:

timedatectl status

输出中的 NTP service: active 表示已启用自动同步,Time zone 应与你所在时区一致(如 Asia/Shanghai)。
如果显示 NTP service: inactive 或时间明显不对,那就是时间同步失败的根因。

小提示:如果时区没设对,时间可能差好几个小时,也会导致证书验证失败。
可以用 timedatectl list-timezones 查找你需要的时区,然后用 timedatectl set-timezone Asia/Shanghai 设置。

安装并配置 chrony(推荐)或 NTP 服务

现代 Linux 发行版默认用 chrony 做时间同步,它比传统 NTP 客户端更精准、更抗网络抖动。
如果系统中没有 chrony,先安装它。

CentOS / RHEL / Rocky Linux

yum install -y chrony
systemctl enable chronyd

Ubuntu / Debian

apt update && apt install -y chrony
systemctl enable chrony

安装后修改配置文件 /etc/chrony.conf(若用传统 NTP 则修改 /etc/ntp.conf)。
建议保留官方默认的 NTP 服务器池,或者换成国内镜像以加快同步速度。
在配置文件中加入或确认以下行:

pool cn.pool.ntp.org iburst
pool 0.cn.pool.ntp.org iburst
pool 1.cn.pool.ntp.org iburst

iburst 参数让初次同步时快速发出多个请求,缩短收敛时间。

如果你只想用传统 NTP 服务,而不是 chrony,先卸载 chrony 再安装 ntp

yum install -y ntp              # CentOS
apt install -y ntp               # Ubuntu
timedatectl set-ntp false        # 先关闭 chrony 的自动管理
systemctl enable ntpd && systemctl start ntpd

启动同步并验证时间更新

配置好服务后,手动启动并检查同步状态。

# 对于 chrony
systemctl restart chronyd
chronyc sources -v

看到输出列中的 ^*^+ 表示成功同步到上级 NTP 服务器。
接着用 datetimedatectl status 确认时间已更新为当前时间。

如果时间仍然不准,可能是因为防火墙阻止了 UDP 123 端口。
检查防火墙规则并放行 NTP 端口:

# 以 firewalld 为例
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
# 或者直接添加端口
firewall-cmd --add-port=123/udp --permanent

验证证书是否恢复

时间同步正确后,用 curl 测试 HTTPS 连接:

curl -I https://yourdomain.com

如果不再报证书错误,说明问题已解决。
也可以用 OpenSSL 精细检查:

echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates

输出中的 notBeforenotAfter 都在合理范围内,且当前时间落在两者之间,就表明证书校验通过。

注意:即使时间同步了,如果证书本身已经物理过期(notAfter 早于当前时间),仍需向 CA 重新申请证书。
时间同步只解决因系统时间错误导致的误判。

避坑与常见问题解答

1. 为什么 chrony 启动了但时间不变?
最常见原因是 NTP 服务器不可达。检查网络连通性:ping cn.pool.ntp.org。另外,systemd 的 timesyncd 可能与 chrony 冲突。可以关闭 systemd-timesyncd:systemctl stop systemd-timesyncd && systemctl disable systemd-timesyncd

2. 时区正确但同步后时间仍差几分钟?
可能是 NTP 服务器响应慢或跳跃限制。chrony 默认采用渐进调整,大幅偏差可能需要几次同步才能拉回。可以强制立即调整:

chronyc makestep

3. 生产环境需要配置多个 NTP 服务器吗?
建议配置至少 3 个不同地理位置的 NTP 源,避免单点故障。chrony 配置文件中用多行 poolserver 即可。

4. 重启服务器后时间又乱掉?
检查硬件时钟(RTC)是否也同步:timedatectl set-local-rtc 0(设为 UTC),并确保 systemctl enable chronyd 已启用开机自启。

如果你处理的是 Linux 服务器时间同步失败导致证书失效的场景,建议先按以上步骤完整执行一次,再根据自己的网络环境和服务版本做微调。
遇到异常时重点排查防火墙、NTP 服务器可达性以及时区设置,这三个点几乎覆盖了 90% 的问题原因。

分享到:
上一篇
用 AI 写 SQL 语句,执行后数据库直接崩了
下一篇
宝塔面板多站点配置,一个服务器跑 10 个网站
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意