- Published on
如何使用 Cloudflare SSL 证书和 Nginx 为网站配置 HTTPS
- Authors

- Name
- Jack Qin
在这个案例中,我将以我的网站为例。
第一步:设置 Cloudflare
注册/登录 Cloudflare:
- 访问 Cloudflare 官网。
- 注册新账户或登录现有账户。
添加您的网站:
- 登录后,点击"添加站点"按钮。
- 输入您的域名(例如 fudongs.com),然后点击"添加站点"。
选择方案:
- 选择一个方案。您可以从免费方案开始,它提供基本的 SSL/TLS 和 CDN 功能。
- 点击"继续"。
更新 DNS 设置:
- Cloudflare 将扫描您的 DNS 记录。检查并确认所有记录正确。
- 点击"继续"。
- Cloudflare 将为您提供名称服务器。您需要将域名的名称服务器更新为这些 Cloudflare 名称服务器。
- 登录您的域名注册商(例如 GoDaddy、Namecheap),将名称服务器更新为 Cloudflare 提供的服务器。
- 完成后,返回 Cloudflare 并点击"继续"。
第二步:在 Cloudflare 中启用 SSL/TLS
导航到 SSL/TLS:
- 在 Cloudflare 控制面板中,转到"SSL/TLS"部分。
选择 SSL/TLS 模式:
- 选择 SSL/TLS 模式。如果您的源服务器已有 SSL 证书,推荐选择"完全"或"完全(严格)"。
- 灵活:加密浏览器和 Cloudflare 之间的流量。
- 完全:加密浏览器和 Cloudflare 之间的流量,以及使用自签名证书加密 Cloudflare 和源服务器之间的流量。
- 完全(严格):加密浏览器和 Cloudflare 之间的流量,以及使用有效 SSL 证书加密 Cloudflare 和源服务器之间的流量。
- 选择 SSL/TLS 模式。如果您的源服务器已有 SSL 证书,推荐选择"完全"或"完全(严格)"。
第三步:创建 Cloudflare 源证书
创建证书:
- 在 Cloudflare 控制面板中,导航到 SSL/TLS -> 源服务器。
- 点击"创建证书"。
- 选择"让 Cloudflare 生成私钥和 CSR"。
- 选择您要保护的域名(例如
fudongs.com和*.fudongs.com用于通配符)。 - 点击"下一步"。
保存证书和私钥:
- 复制 Cloudflare 提供的源证书和私钥,并保存到您的服务器上。
第四步:配置 Nginx 使用 Cloudflare 证书
保存证书和私钥:
- 将源证书保存到服务器上的文件,例如
/etc/ssl/certs/cloudflare_origin.pem。 - 将私钥保存到服务器上的文件,例如
/etc/ssl/private/cloudflare_origin.key。
- 将源证书保存到服务器上的文件,例如
编辑 Nginx 配置:
打开您站点的 Nginx 配置文件。通常位于
/etc/nginx/sites-available/fudongs.com。sudo nano /etc/nginx/sites-available/fudongs.com更新配置以包含 SSL 设置:
server { listen 80; server_name fudongs.com www.fudongs.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name fudongs.com www.fudongs.com; ssl_certificate /etc/ssl/certs/cloudflare_origin.pem; ssl_certificate_key /etc/ssl/private/cloudflare_origin.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; root /var/www/fudongs.com/html; index index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; } }
测试并重载 Nginx:
- 测试配置是否有语法错误:
sudo nginx -t - 重载 Nginx 以应用更改:
sudo systemctl reload nginx
- 测试配置是否有语法错误:
第五步:验证 HTTPS
在浏览器中检查:
- 在浏览器中打开您的网站,验证它是否通过 HTTPS 加载。
验证证书:
- 使用类似 SSL Labs 的工具验证您的 SSL 证书和配置。
附加安全措施(可选)
HTTP 严格传输安全(HSTS):
- 添加 HSTS 以强制使用 HTTPS:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
- 添加 HSTS 以强制使用 HTTPS:
将所有流量重定向到 HTTPS:
- 确保所有 HTTP 流量都重定向到 HTTPS。这已在上面的配置中包含,使用 80 端口服务器块中的
return 301 https://$host$request_uri;指令。
- 确保所有 HTTP 流量都重定向到 HTTPS。这已在上面的配置中包含,使用 80 端口服务器块中的
按照这些详细步骤操作,您应该能够成功使用 Cloudflare 的 SSL 证书和 Nginx 为网站配置 HTTPS。