怎么查询SSL证书有效期?浏览器、OpenSSL和工具检查方法

更新时间:2026-01-16 来源:TopSSL技术团队

怎么查询SSL证书有效期?

查询 SSL 证书有效期,最直接的方法有三种:浏览器查看证书详情、用 OpenSSL 检查服务器实际返回的证书、通过在线检测工具查看公网证书状态。

场景选择上有明确分工:只检查一个网站,浏览器就够用;在服务器上排查证书问题,用 OpenSSL; 检查多个域名或长期监控,用检测工具或脚本。核心字段是 notAfter——X.509 证书的失效时间,判断证书什么时候过期主要看它;notBefore 记录生效时间。

需要注意,查看网站证书时要检查服务器当前实际返回的证书:网站前面有 CDN、负载均衡或反向代理时,浏览器看到的证书可能来自边缘节点而不是源站。OpenSSL 检查务必带 -servername 指定 SNI 域名,避免拿到默认站点的证书。


证书有效期在哪里看

SSL 证书的 Validity 字段记录有效时间范围:notBefore 是开始生效时间,notAfter 是失效时间。例如 notBefore=Jan 15 2026 GMT、notAfter=Jan 15 2027 GMT,表示证书从 2026 年 1 月 15 日开始、2027 年 1 月 15 日结束,过期时间看 notAfter。

查看时要注意看服务器实际返回的证书。网站前面有 CDN、负载均衡或反向代理时,浏览器看到的证书可能来自 CDN 或负载均衡节点,不是源站。


浏览器查看

只想查某个网站的到期时间,浏览器最简单。

Chrome 操作:打开 HTTPS 网站,点击地址栏左侧的网站信息图标,进入"连接是安全的 → 证书有效(或显示证书)",在证书详细信息窗口查看有效期。不同 Chrome 版本界面名称略有变化,Edge、Firefox 操作入口不同但思路一致。

浏览器适合人工检查单个网站。需要确认服务器到底加载了哪张证书,或怀疑 CDN、负载均衡没更新时,用 OpenSSL 更准确。


用 OpenSSL 查看

检查公网域名的证书:

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

返回 notBefore 和 notAfter。只关心过期时间:

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate

-servername 参数很关键:一台服务器可能部署多个 HTTPS 网站共用 IP,服务器按客户端发送的 SNI 决定返回哪个域名的证书。不带 -servername 时,可能拿到默认站点的证书——同一个 IP,带和不带 -servername 得到的证书可能完全不同,检查具体域名时始终带上。

查看本地证书文件(还没部署的证书):

openssl x509 -in certificate.crt -noout -dates
openssl x509 -in certificate.pem -noout -enddate

DER 编码(常见 .cer 扩展名)指定格式:

openssl x509 -inform DER -in certificate.cer -noout -dates

不确定手里的 .crt、.cer、.pem 是什么格式,用证书有效期在线查询工具检测。


计算剩余天数与自动监控

只看 notAfter 还要自己算。Linux 下用 Shell 脚本:

DOMAIN="example.com"

EXP_DATE=$(echo | openssl s_client \
-servername "$DOMAIN" \
-connect "$DOMAIN:443" 2>/dev/null | \
openssl x509 -noout -enddate | \
cut -d= -f2)

EXP_EPOCH=$(date -d "$EXP_DATE" +%s)
NOW_EPOCH=$(date +%s)

DAYS_LEFT=$(( (EXP_EPOCH - NOW_EPOCH) / 86400 ))

echo "SSL证书剩余约 ${DAYS_LEFT} 天"

做监控时按剩余天数分级告警:剩余 ≤ 30 天常规提醒,≤ 7 天高优先级提醒,已过期立即处理。域名多的企业用自动检测比人工逐个查可靠。

cURL 也可以看证书,但定位不同:curl -vI https://example.com 的 verbose 输出能看到证书相关信息,更适合检查连接能否建立、TLS 握手是否成功、HTTP 响应是否正常、有没有证书验证错误。准确获取 notAfter,用 openssl s_client 加 x509 -noout -enddate 更直接。


常见排查

浏览器和 OpenSSL 看到的时间不一样,最常见原因是时区:证书时间以 UTC/GMT 表示,浏览器按本地时区显示。OpenSSL 显示 notAfter=Jan 15 2027 GMT,换成北京时间要加 8 小时。相差几个小时是时区显示差异,相差整天甚至更久,要检查服务器返回的证书是否一致。

服务器更新证书后查询还是旧证书,优先检查四点:

  1. Web 服务器没重新加载。Nginx 替换证书后要 nginx -t 并 systemctl reload nginx,只换文件进程还在用旧证书。
  2. CDN 或负载均衡没更新。公网看到的是最前面节点的证书,源站换了新证书不代表公网立即生效。
  3. 多台服务器没全部更新。一个域名对应多个后端节点时,不同节点可能返回不同证书。
  4. SNI 配置错误。OpenSSL 没带 -servername,拿到默认站点证书。

泛域名和多域名证书的有效期查看方式和单域名没有本质区别,都是看 notAfter;区别在检查域名。通配符证书 *.example.com 检查时应直接访问实际子域名:

openssl s_client -servername api.example.com -connect api.example.com:443

确认 api.example.com 当前实际用的是哪张证书。通配符证书的覆盖范围可以参考通配符证书的覆盖范围


快过期了怎么办

不要等到最后一天。商业证书需要重新申请或续期获得新证书再部署,证书本身不能通过修改 notAfter 延长有效期。更新流程:

检查当前证书 → 申请/续期新证书 → 完成域名验证 → 下载新证书 → 部署到服务器 → 重新加载Web服务 → 检查公网实际证书 → 确认旧证书已替换

部署方法参考新证书部署与重载;更换后出现证书链、域名不匹配或浏览器报错,看证书部署后报错排查;提前规划续签可以看证书采购与续签规划


常见问题解答

怎么看 SSL 证书还有多少天过期?

最简单的方法是直接在浏览器查看证书有效期。需要精确计算剩余天数时,用 OpenSSL 获取 notAfter 字段,再与当前时间戳做减法。

OpenSSL 显示的 notAfter 是什么意思?

notAfter 是 X.509 证书中的失效时间,即证书有效期的截止时间。判断证书什么时候过期,主要看这个字段。

网站换了新证书,为什么在线检测还是显示旧证书?

重点检查 CDN、负载均衡和多服务器节点是否同步更新,同时确认 Web 服务已重新加载证书。用 OpenSSL 检查时带上 -servername,避免拿到默认站点的证书。

SSL 证书快到期了,可以直接修改有效期吗?

不能。证书的有效期由 CA 签发时确定,不能通过修改证书文件延长。到期前需要重新申请或续期,把新证书部署到服务器。


查询 SSL 证书有效期不复杂:单个网站用浏览器,服务器排查用 OpenSSL,多域名长期监控用工具或脚本。核心字段是 notAfter。对 CDN、负载均衡和多服务器环境,不能只看源站证书,要确认公网实际返回的证书是否已更新;OpenSSL 检查务必带 -servername 避免拿到默认站点证书。域名多时用脚本自动检测,在到期前完成续期和部署。

立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费SSL证书 - SSL证书申请与HTTPS安全服务平台 | TopSSL
提供免费与付费SSL证书申请
关注 TopSSL 公众号, RSS订阅SSL资讯与技术支持

TopSSL是一站式SSL证书服务平台,提供免费SSL证书申请、商业SSL证书服务及HTTPS安全解决方案,支持DV、OV、EV、通配符和国密SSL证书服务。2004-2026 © 北京传诚信  版权所有 |  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn