可通过 nginx -T | grep ssl_certificate 获取证书路径,再用 openssl x509 -in [path] -text -noout 查看详细信息;nginx -t 可验证路径与格式是否合法,curl -vI 和错误日志可辅助确认实际加载的证书。

可以通过 Nginx 自身的配置和 OpenSSL 命令结合,查看当前实际加载并使用的 SSL 证书详细信息。Nginx 本身不提供运行时证书详情的内置命令,但证书路径在配置中明确指定,拿到路径后用 OpenSSL 即可解析。
确认 Nginx 配置中使用的证书文件路径
SSL 证书路径由 ssl_certificate 指令指定,通常在 server 块或 http 块中:
- 运行
nginx -T | grep ssl_certificate查看所有生效的证书路径(-T会输出完整解析后的配置) - 或直接检查配置文件,如
/etc/nginx/sites-enabled/example.com,找类似这一行:ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; - 注意:如果用了
ssl_certificate和ssl_certificate_key分开配置,证书链一般在ssl_certificate指向的文件里(如 Let’s Encrypt 的fullchain.pem),它包含域名证书 + 中间证书
用 OpenSSL 查看证书内容
拿到证书文件路径后,执行以下命令查看详细信息:
- 查看证书主体、有效期、颁发者等基本信息:
openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -text -noout | head -30 - 查看证书完整信息(含扩展字段、OCSP、CA 约束等):
openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -text -noout - 只看有效期:
openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -dates -noout - 验证证书是否与私钥匹配(防止配错):
openssl x509 -noout -modulus -in fullchain.pem | openssl md5<br>openssl rsa -noout -modulus -in privkey.pem | openssl md5
两个 MD5 值一致才说明匹配
确认 Nginx 实际加载的是哪个证书(多域名/多配置场景)
当有多个 server 块监听 443 并配置了不同证书时,需确认请求命中的是哪一个:
- 用
curl -vI https://your-domain.com查看响应头中的subject或issuer,对比证书内容 - 临时在对应
server块中加一个唯一响应头,比如:add_header X-Cert-Source "prod-fullchain-v2";,再 curl 验证 - 检查 Nginx 错误日志(
error_log)是否有证书加载失败警告,例如 “cannot load certificate” 或 “no start line”,说明路径错误或格式不对
快速验证证书是否被 Nginx 正确识别(无需重启)
修改配置后,可以用以下方式快速验证证书是否可读、格式是否合法:
- 运行
nginx -t—— 它会尝试加载证书文件,若路径不存在或 PEM 格式损坏,会直接报错 - 若
nginx -t通过,说明证书文件存在且语法基本正确;但不保证内容有效(如过期、域名不匹配等),这些需靠 OpenSSL 或浏览器验证 - 对已运行的实例,可用
ss -tlnp | grep :443确认 Nginx 进程正在监听,再配合curl测试 HTTPS 响应


















