记一次 HTTPS 证书过期的处置过程的流水帐。

背景

因应用上线的需求在阿里云租用了一台服务器,考虑到后期发布的问题一并注册了一个域名。但近期因为项目关系导致该应用的上线时间一直在延期,域名证书因为申请是免费证书(DigiCert RSA)每次只有3个月的有效期,导致证书过期后没有及时更新,在Nginx的网关层HTTP又做了301跳转到HTTP的重定向。导致出现了下面的情况。

image-20241022233525178

查看签名证书详情我们可以看到,我们证书在10月1日早上8点就失效了,所以导致证书过期。

临时解决方案

  1. 解除301重定向

由于服务端做了301的跳转,导致网关层接受到的所有 HTTP 请求都会重定向到 HTTPS 。所以这里注释掉return 301的 HTTPS 跳转,并重写 HTTPS 的跳转使 HTTPS 的请求重定向到 HTTP 以解决证书无效的问题。并通过 nginx -s reload 重载nginx配置,使配置生效。此时网站的访问就会恢复正常。

image-20241022232942746

  • HTTPS 重定向 HTTP
1
return 301 http://$server_name$request_uri;
  • 更新 nginx 配置
1
nginx -s reload
  1. 获取新证书

向域名提供商提交申请,签发成功后会有邮件通知。DigiCert RSA 的审核周期预计在5分钟以内。image-20241022234835430

更新证书

  • 获取证书

点击下载获取应用的证书文件。根据服务器类型获取对应的证书文件即可。

image-20241022235602136

  • 部署证书
  1. 将压缩文件解压,将签发的证书文件覆盖上传到对应的证书位置。

image-20241022235859498

image-20241023000335484

  1. 恢复配置文件的 HTTPS 301重定向。

image-20241023000828198

1
return 301 https://$server_name$request_uri;
  1. 使用 nginx -s reload重新加载配置文件使配置生效。
  • 验证

页面恢复正常,有效期延长。

image-20241023001055537