当前位置:首页 > 行业动态 > 正文

https证书更新

HTTPS证书更新需在到期前通过域名验证重新申请,替换服务器旧证书并重启服务,建议提前30天操作

HTTPS证书更新指南

证书更新前的准备

  1. 检查证书有效期

    • 通过浏览器访问网站,点击锁形图标查看证书剩余天数。
    • 使用命令行工具(如 openssl)检查:
      openssl s_client -connect yourdomain.com:443 -servername yourdomain.com < /dev/null | grep "Not Before"
  2. 备份现有证书和私钥

    • 路径示例:/etc/ssl/certs/yourdomain.com.crt(证书)、/etc/ssl/private/yourdomain.com.key(私钥)。
    • 复制到安全目录:
      cp /etc/ssl/certs/yourdomain.com.crt /backup/certs/
      cp /etc/ssl/private/yourdomain.com.key /backup/keys/
  3. 确认证书类型
    | 证书类型 | 验证方式 | 适用场景 |
    |—|—|—|
    | DV SSL(域名验证) | 仅验证域名所有权 | 个人网站、测试环境 |
    | OV SSL(组织验证) | 验证企业身份 | 企业官网、中小型电商 |
    | EV SSL(扩展验证) | 严格企业验证 + 域名验证 | 金融、政府类网站 |

更新流程步骤

  1. 生成新的密钥对(如需要)

    https证书更新  第1张

    • 推荐使用 openssl 生成:
      openssl genrsa -out new_private.key 2048
      openssl req -new -key new_private.key -out new_csr.csr
  2. 提交证书签发请求

    • Let’s Encrypt(免费):
      certbot renew --dry-run # 测试续订流程
      certbot renew --force-renewal # 强制更新
    • 付费CA(如DigiCert)

      登录CA账户,提交CSR文件或使用API自动续订。

  3. 安装新证书

    • Nginx配置示例
      server {
          listen 443 ssl;
          ssl_certificate /etc/ssl/certs/new_cert.pem;
          ssl_certificate_key /etc/ssl/private/new_key.pem;
          ssl_trusted_certificate /etc/ssl/certs/chain.pem; # 中间证书链
      }
    • IIS配置
      通过MMC导入 .pfx 文件,绑定到网站。
  4. 验证更新结果

    • 使用在线工具(如 SSL Labs)检测评分。
    • 检查浏览器地址栏是否显示绿色锁。

自动化续期方案

工具 适用场景 命令示例
Certbot Let’s Encrypt 证书 certbot renew --duplicate
cron-job 定时任务(Linux) 0 0 /30 /usr/bin/certbot renew --quiet
Windows Task Scheduler 定时任务(Windows) 配置PowerShell脚本执行Certbot

常见问题与解决

  1. 浏览器仍提示“不安全”

    • 可能原因:中间证书链缺失。
    • 解决方案:将CA提供的中间证书(chain.pem)与主证书合并。
  2. 续期后证书未生效

    • 检查服务器是否加载了新证书文件。
    • 重启Web服务(如 systemctl restart nginx)。

相关问题与解答

Q1:如何查看当前HTTPS证书的剩余有效期?

A1

  1. 使用浏览器开发者工具:按 F12 → Security → View Certificate → Details 标签页。
  2. 命令行工具:
    echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates

Q2:Let’s Encrypt证书更新失败怎么办?

A2

  1. 检查DNS解析是否正常,确保域名能解析到服务器。
  2. 清理旧证书缓存:
    sudo rm -f /etc/letsencrypt/renewal/.i /etc/letsencrypt/renewal/.conf
  3. 手动触发更新:
    sudo certbot renew --dry-run
0