记一次 HTTPS 证书过期的处置过程的流水帐。
背景
因应用上线的需求在阿里云租用了一台服务器,考虑到后期发布的问题一并注册了一个域名。但近期因为项目关系导致该应用的上线时间一直在延期,域名证书因为申请是免费证书(DigiCert RSA)每次只有3个月的有效期,导致证书过期后没有及时更新,在Nginx的网关层HTTP
又做了301跳转到HTTP
的重定向。导致出现了下面的情况。
查看签名证书详情我们可以看到,我们证书在10月1日早上8点就失效了,所以导致证书过期。
临时解决方案
- 解除301重定向
由于服务端做了301的跳转,导致网关层接受到的所有 HTTP 请求都会重定向到 HTTPS 。所以这里注释掉return 301
的 HTTPS 跳转,并重写 HTTPS 的跳转使 HTTPS 的请求重定向到 HTTP 以解决证书无效的问题。并通过 nginx -s reload 重载nginx配置,使配置生效。此时网站的访问就会恢复正常。
- HTTPS 重定向 HTTP
1 | return 301 http://$server_name$request_uri; |
- 更新 nginx 配置
1 | nginx -s reload |
- 获取新证书
向域名提供商提交申请,签发成功后会有邮件通知。DigiCert RSA 的审核周期预计在5分钟以内。
更新证书
- 获取证书
点击下载获取应用的证书文件。根据服务器类型获取对应的证书文件即可。
- 部署证书
- 将压缩文件解压,将签发的证书文件覆盖上传到对应的证书位置。
- 恢复配置文件的 HTTPS
301
重定向。
1 | return 301 https://$server_name$request_uri; |
- 使用
nginx -s reload
重新加载配置文件使配置生效。
- 验证
页面恢复正常,有效期延长。