运维证书检查
v1.0.1SSL/TLS 证书检查与更新标准操作程序。涵盖证书验证(PEM/CRT/JKS)、Nginx 证书更新、Let's Encrypt 通配符申请以及紧急...
运行时依赖
安装命令
点击复制技能文档
SSL/TLS 证书检查和更新 SOP
场景 1:验证现有证书 方法 A:Linux OpenSSL(推荐) # 检查 PEM/CRT 证书 openssl x509 -in certificate.crt -noout -dates # 检查 JKS 证书 keytool -list -v -keystore keystore.jks -storepass
方法 B:在线验证 直接在浏览器中打开证书文件以查看有效期和颁发者。
方法 C:远程检查 # 检查 Nginx 证书(端口 443) echo "" | openssl s_client -connect domain:443 -servername domain 2>/dev/null | openssl x509 -noout -dates # 检查游戏服务器 JKS 证书(端口 +3 偏移) echo "" | openssl s_client -connect game.domain:port+3 2>/dev/null | openssl x509 -noout -dates
场景 2:Nginx 证书更新(标准流程) 适用于:Web 服务、反向代理、CDN 前端和任何 Nginx 托管的 SSL 终止。 标准步骤
- 替换证书文件
- 验证配置
- 重载 Nginx
- 验证更新
- 更新证书监控记录
- 提交到版本控制
角色职责 角色范围 Ops/Infra 替换 Nginx 证书,验证,重载,更新监控 第三方供应商 云服务,负载均衡器,中间件证书
场景 3:游戏服务器 JKS 证书更新 适用于:使用 JKS(Java KeyStore)格式证书的基于 Java 的游戏服务器。 流程 Ops 提供证书和私钥 ↓ 开发团队编译成 Java 证书(JKS)↓ Ops 上传 JKS 到 ops 服务器 ↓ 游戏服务器自动替换下一次更新 ↓ 验证:请求游戏服务器域名在端口 +3 JKS 证书验证 keytool -list -v -keystore game.jks -storepass
场景 4:Let's Encrypt 通配符证书 适用于:使用 Let's Encrypt 证书的自管理服务(例如内部工具,开发环境,小规模部署)。 前提条件 Linux 服务器具有互联网访问 根/sudo 访问 域 DNS 已指向服务器 DNS 提供商具有 API 访问(Alibaba Cloud DNS,Cloudflare,Route53 等) DNS-01 挑战通配符 # 安装 certbot 以及 DNS 插件(Alibaba Cloud 示例) yum install -y certbot-dns-aliyun # 配置 Alibaba Cloud CLI 身份验证 # 参考:https://help.aliyun.com/zh/cli/configure-credentials # 申请通配符证书 certbot certonly \ --manual \ --preferred-challenges dns \ --dns-aliyun \ -d ".example.com" \ -d "example.com" 对于其他 DNS 提供商,使用相应的插件: Cloudflare:certbot-dns-cloudflare Route53:certbot-dns-route53 通用:--manual --preferred-challenges dns 在 Nginx 上安装证书 # 切换到证书目录 cd /etc/letsencrypt # 生成 DH 参数(增强安全性) openssl dhparam -out dhparam.pem 2048 # 添加 SSL 配置 vim /etc/letsencrypt/options-ssl-nginx.conf # 配置 Nginx # ... 添加 ssl_certificate,ssl_certificate_key 等... # 重载 Nginx nginx -s reload 自动续期 # 设置 cron 作业(每 2 天运行一次) crontab -e # 0 0 /2 certbot renew --deploy-hook "/root/your-hook.sh" # 手动 dry-run(不会实际续期) certbot renew --dry-run 注意:Let's Encrypt 证书有效期为 90 天。certbot renew 只在到期前 30 天内实际续期。
场景 5:过期证书紧急响应 紧急情况:证书过期,业务受影响(例如,支付失败,用户被锁定)。 立即行动: 确定受影响的域名: openssl s_client -connect domain:443 联系负责方(内部团队或第三方供应商) 替换证书文件并重载: nginx -s reload 通知利益相关者恢复情况 预防: 监控警报 + 通知(Slack/电子邮件/PagerDuty 等) cron 作业检查证书过期 提前 30 天警告过期 证书快速参考 项目类型 续期说明 项目证书(购买) 商业 CA_vendor/第三方 联系发行者直接 JKS 证书 Java KeyStore 开发团队编译 Ops 上传到服务器 Let's Encrypt ACME certbot 自动续期 90 天有效期 通配符证书 DNS 验证 certbot 使用 DNS 插件 所需 .domain.com 命令速查表 # 检查证书有效期 openssl x509 -in cert.crt -noout -dates # 检查 JKS 证书 keytool -list -v -keystore game.jks # Nginx 配置测试 nginx -t # 重载 Nginx nginx -s reload # 应用 Let's Encrypt(DNS 挑战) certbot certonly --manual --preferred-challenges dns -d ".domain.com" # 自动续期