问题背景:

我在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.pemprivkey.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 年)。