问题背景:
我在nginx中添加的是源服务器证书,但是网站证书有效期显示的是边缘证书3个月,而不是源服务器证书的15年
1. 源服务器证书和边缘证书的关系
源服务器证书
- 定义:源服务器证书是安装在你的服务器(Nginx)上的 SSL 证书,用于加密 Cloudflare 和你的服务器之间的通信。
- 作用:确保 Cloudflare 和你的服务器之间的数据传输是加密的。
- 有效期:你提到源服务器证书的有效期是 15 年,这可能是你手动生成的自签名证书或从其他证书颁发机构(CA)获取的证书。
边缘证书
- 定义:边缘证书是 Cloudflare 提供的 SSL 证书,用于加密用户浏览器和 Cloudflare 之间的通信。
- 作用:确保用户浏览器和 Cloudflare 之间的数据传输是加密的。
- 有效期:Cloudflare 的边缘证书通常是自动管理的,有效期较短(通常为 3 个月),但 Cloudflare 会自动续期,因此你不需要手动管理。
关系
- 用户浏览器 ↔ 边缘证书 ↔ Cloudflare ↔ 源服务器证书 ↔ 你的服务器
- 用户浏览器和 Cloudflare 之间的通信使用 边缘证书。
- Cloudflare 和你的服务器之间的通信使用 源服务器证书。
2. 为什么网站证书有效期显示为 3 个月?
当你通过浏览器访问网站时,浏览器检查的是 边缘证书(即 Cloudflare 提供的证书),而不是你的源服务器证书。因此,浏览器显示的证书有效期是 Cloudflare 边缘证书的有效期,通常是 3 个月。
原因
- Cloudflare 的边缘证书是自动管理的,有效期较短(3 个月),但 Cloudflare 会自动续期。
- 这种设计是为了提高安全性,因为短有效期的证书可以减少证书泄露的风险。
3. 如何验证源服务器证书的有效期?
如果你想验证源服务器证书的有效期(15 年),可以通过以下方式:
方法 1:直接连接到源服务器
使用
openssl
命令连接到你的源服务器,查看证书信息:openssl s_client -connect your-server-ip:443 -servername dashboard.maka.us.kg
- 在输出中查找证书的有效期。
方法 2:通过 Cloudflare 的“源服务器”设置
- 登录 Cloudflare 控制台,进入 SSL/TLS → 源服务器。
- 查看你上传的源服务器证书信息,确认其有效期。
4. 如何确保源服务器证书正确配置?
步骤 1:生成或获取源服务器证书
如果你使用的是自签名证书,可以使用以下命令生成:
openssl req -x509 -newkey rsa:2048 -keyout privkey.pem -out fullchain.pem -days 5475 -nodes -subj "/CN=dashboard.maka.us.kg"
-days 5475
表示 15 年有效期。
- 如果你使用的是 Let's Encrypt 或其他 CA 的证书,确保证书文件(
fullchain.pem
和privkey.pem
)已正确生成。
步骤 2:配置 Nginx
在 Nginx 配置中指定源服务器证书的路径:
ssl_certificate /www/sites/dashboard.maka.us.kg/ssl/fullchain.pem; ssl_certificate_key /www/sites/dashboard.maka.us.kg/ssl/privkey.pem;
步骤 3:测试配置
使用
nginx -t
测试配置是否正确:nginx -t
重启 Nginx 以应用配置:
systemctl restart nginx
步骤 4:验证源服务器证书
使用
openssl
命令验证源服务器证书是否生效:openssl s_client -connect your-server-ip:443 -servername dashboard.maka.us.kg
5. 总结
- 源服务器证书 用于加密 Cloudflare 和你的服务器之间的通信。
- 边缘证书 用于加密用户浏览器和 Cloudflare 之间的通信。
- 浏览器显示的证书有效期是 Cloudflare 边缘证书的有效期(3 个月),而不是源服务器证书的有效期(15 年)。