首页主机资讯如何检查Debian Nginx SSL证书有效性

如何检查Debian Nginx SSL证书有效性

时间2025-12-15 19:32:04发布访客分类主机资讯浏览514
导读:Debian Nginx SSL证书有效性检查指南 一 快速检查证书到期与链 远程查看站点证书有效期(SNI 场景必需) 命令:echo | openssl s_client -connect example.com:443 -serv...

Debian Nginx SSL证书有效性检查指南

一 快速检查证书到期与链

  • 远程查看站点证书有效期(SNI 场景必需)
    • 命令:echo | openssl s_client -connect example.com:443 -servername example.com 2> /dev/null | openssl x509 -noout -dates
    • 关注输出中的 notBeforenotAfter,判断是否过期或临近过期。
  • 直接检查本地证书文件
    • 命令:openssl x509 -in /etc/nginx/ssl/example.com.crt -noout -dates
    • 如需查看完整信息(颁发者、SAN 等):openssl x509 -in /etc/nginx/ssl/example.com.crt -text -noout
  • 检查证书是否在未来 N 天内过期
    • 示例(未来 30 天):openssl x509 -enddate -noout -in /etc/nginx/ssl/example.com.crt -checkend 2592000
    • 返回值为 0 表示在期限内,非 0 表示将过期或已过期。
  • 验证证书链是否完整(避免浏览器报“证书无效/链不完整”)
    • 命令:openssl s_client -connect example.com:443 -servername example.com -showcerts
    • 输出应包含服务器证书及至少一个中间证书;若缺失中间证书,需将中间证书与主证书合并为 fullchain 并在 Nginx 中使用该文件。

二 校验证书与私钥匹配及Nginx配置

  • 校验证书与私钥是否匹配(公钥模数一致)
    • 命令:
      • openssl x509 -noout -modulus -in /etc/nginx/ssl/example.com.crt | openssl md5
      • openssl rsa -noout -modulus -in /etc/nginx/ssl/example.com.key | openssl md5
    • 两个 MD5 值必须一致,否则握手失败或部署异常。
  • 核对 Nginx 配置路径与语法
    • 确认 ssl_certificate 指向包含完整链的证书(如 fullchain.pem),ssl_certificate_key 指向正确私钥:
      • 示例:
        • ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        • ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    • 语法检查与热加载:
      • sudo nginx -t
      • sudo systemctl reload nginx
  • 权限建议(降低私钥泄露风险)
    • sudo chmod 600 /etc/nginx/ssl/*.key
    • sudo chmod 644 /etc/nginx/ssl/*.crt

三 在线与深度测试

  • 在线评测
    • 使用 SSL Labs SSL Server Test 对域名进行配置安全性与证书链评估,关注评分、链完整性、协议与套件支持等。
  • 命令行深度测试
    • 使用 testssl.sh 进行全面检测(协议、套件、漏洞、证书链等):testssl.sh example.com
    • 使用 check_http(Nagios 插件)检查证书剩余天数:/usr/lib/nagios/plugins/check_http -H example.com -C 30,14(表示至少 30 天,警告阈值 14 天)。

四 自动化监控与续期

  • 启用 OCSP Stapling(提升验证效率与用户体验)
    • 在 Nginx 配置中开启:
      • ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 valid=300s; resolver_timeout 5s;
    • 验证是否生效:
      • openssl s_client -connect example.com:443 -tls1_2 -tlsextdebug 2> /dev/null | grep -i "OCSP response"
      • 若输出包含 OCSP response 相关信息,表示已生效。
  • 自动续期与演练(Let’s Encrypt/Certbot)
    • 安装:sudo apt update & & sudo apt install certbot python3-certbot-nginx
    • 获取/续期:sudo certbot renew --dry-run(先演练),确认无误后由系统定时任务自动续期(默认每 90 天检查)。
    • 续期后重载 Nginx:sudo systemctl reload nginx

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何检查Debian Nginx SSL证书有效性
本文地址: https://pptw.com/jishu/771965.html
如何为Debian Nginx配置HTTPS重定向 Linux readdir性能瓶颈在哪

游客 回复需填写必要信息