在 Linux 上使用 OpenSSL 时提示“过期”(或类似 certificate expired / not yet valid / verify error),通常不是 OpenSSL 本身过期,而是以下几类原因之一。我按常见程度给你梳理一下:
OpenSSL 只是工具,真正会“过期”的是 证书。
openssl verify server.crt
error 10 at 0 depth lookup: certificate has expired
*.crt / *.pem)到期了openssl x509 -in server.crt -noout -dates
看:
notBefore = ...
notAfter = ... <-- 过期时间
✅ 解决:重新签发 / 续期证书(Let’s Encrypt、内部 CA、厂商证书等)
Linux 用 /etc/ssl/certs 里的 CA 包验证证书。
ca-certificates 包太久没更新rpm -q ca-certificates # RHEL/CentOS
dpkg -l | grep ca-certificates # Debian/Ubuntu
# Debian / Ubuntu
apt update && apt install --only-upgrade ca-certificates
# CentOS / RHEL
yum update ca-certificates
OpenSSL 验证证书时间非常严格。
date
# 手动设置(示例)
date -s "2026-01-15 10:00:00"
# 或启用 NTP
timedatectl set-ntp true
⚠️ 虚拟机、容器、断电设备极易出现时间回退。
例如:
openssl version
✅ 解决:升级系统或 OpenSSL(谨慎,系统依赖多)
有时看到的是:
WARNING: can't open config file
或
OPENSSL_CONF 指向不存在文件
这不是过期,是配置问题。
openssl versiondateopenssl x509 -in cert.pem -noout -datesca-certificates 是否最新如果你愿意,可以把完整的报错信息或你执行的命令贴出来,我可以直接帮你定位是哪一类问题。