如何检查Debian Nginx SSL证书有效性
导读: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 - 关注输出中的 notBefore 与 notAfter,判断是否过期或临近过期。
- 命令:
- 直接检查本地证书文件
- 命令:
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 表示将过期或已过期。
- 示例(未来 30 天):
- 验证证书链是否完整(避免浏览器报“证书无效/链不完整”)
- 命令:
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 md5openssl 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 -tsudo systemctl reload nginx
- 确认
- 权限建议(降低私钥泄露风险)
sudo chmod 600 /etc/nginx/ssl/*.keysudo 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 天)。
- 使用 testssl.sh 进行全面检测(协议、套件、漏洞、证书链等):
四 自动化监控与续期
- 启用 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 相关信息,表示已生效。
- 在 Nginx 配置中开启:
- 自动续期与演练(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
