起因: 国内的阿里云或者腾讯云提供的 https 证书都只有 3 个月的有效期, 而且每个证书只能应用到单个子域名, 不支持通用域名. 容易出现某个子域名的证书忘记更新导致过期了, 无法访问.
解决方案:
- 在域名管理后台 (https://console.cloud.tencent.com/domain/all-domain/all) , 将 huzhongyuan.com 的 dns 服务器修改为 cloudflare ( 前置要求 )
- 在 cloudflare 管理后台, 创建源服务器证书 (15年) , 安装到服务器的 nginx 中
# For https listen 443 ssl; listen [::]:443 ssl ipv6only=on; ssl_certificate /etc/nginx/ssl/cloudflare-free-ssl-until-2039-10-22/*.huzhongyuan.com.pem; ssl_certificate_key /etc/nginx/ssl/cloudflare-free-ssl-until-2039-10-22/*.huzhongyuan.com.key;
- 在 cloudflare 管理后台, 启用 cloudflare 的代理 (小黄云)
- 将 ssl 模式设置为完全严格
参考资料: https://blog.laoda.de/archives/try-cloudflare-free-15-year-ssl-certificate
注意事项:
- 注意: 要使用长期证书, 必须把 huzhongyuan.com 这个主域名的 dns 服务器设置为 cloudflare , 并且需要由 cloudflare 来代理网站请求的流量. 国内访问时可能存在打不开或者速度慢的问题, 需要观察一段时间
- 其实 15 年证书是给 cf 和服务器之间用的, 而浏览器和 cloudflare 之间其实仍然用的是 3 个月的短证书, 但是 cloudflare 会自动续期
顺便在 cloudflare 上把 dnssec 功能也打开了. 这可以保护 dns 解析不被篡改. 但是如果想要把 dns 服务器从 cloudflare 改成别的, 那么需要先关闭 dnssec , 否则导致网站将无法解析.
希望自己不会被自己坑…