AWS EC2网站集成Godaddy SSL与Cloudflare配置技术求助
嘿,我之前刚好折腾过这套组合(EC2+Godaddy+Cloudflare)的SSL配置,给你理个清晰的步骤,分阶段来,绝对不会乱:
整体前提说明
咱们的架构是:Cloudflare作为流量入口(负责缓存+SSL转发)→ 域名解析由Cloudflare接管(原Godaddy仅保留域名所有权)→ 最终流量到EC2上的网站。所以核心是先把DNS控制权转到Cloudflare,再处理SSL的两种配置方案。
第一步:把Godaddy域名的DNS服务器切换到Cloudflare
这是基础,因为只有Cloudflare接管DNS,才能实现它的缓存和SSL功能:
- 登录Godaddy的域名管理后台,找到你的目标域名,进入「DNS管理」页面
- 找到「域名服务器(NS)」选项,替换掉Godaddy默认的NS地址,改成Cloudflare提供的NS地址(你在Cloudflare后台添加域名时,系统会自动生成2-4个专属NS地址,直接复制粘贴就行)
- 保存后,等待DNS生效(一般1-24小时,快的话10分钟),可以用命令验证:
nslookup -type=ns yourdomain.com,如果返回的是Cloudflare的NS地址,就说明生效了 - 登录Cloudflare后台,检查自动导入的DNS记录(Cloudflare会同步Godaddy的原有记录),确保A/CNAME记录正确指向你的EC2公网IP,避免网站失联
第二步:Cloudflare SSL配置(两种方案,按需选择)
方案一:用Cloudflare免费SSL(最推荐,省心省力)
这个方案完全不需要用到你手里的Godaddy证书,Cloudflare自动签发维护SSL,配合缓存更顺畅:
- 在Cloudflare后台进入你的域名,打开「SSL/TLS」选项卡
- 选择「加密模式」:
- 「灵活」:用户→Cloudflare是HTTPS,Cloudflare→EC2是HTTP(适合EC2暂时没配SSL的情况,快速上线HTTPS)
- 「严格」:全程HTTPS,要求EC2上必须有有效的SSL证书(可以用Let's Encrypt免费签,或者用你的Godaddy证书)
- 开启「始终使用HTTPS」和「自动HTTPS重定向」,这样所有HTTP请求都会强制跳转到HTTPS
- 缓存策略正常配置就行(在「缓存」选项卡),比如设置静态资源的缓存时间、缓存规则,和SSL不冲突
方案二:使用你已有的Godaddy SSL证书
如果一定要用自己的Godaddy证书,需要把证书部署到EC2,再配合Cloudflare的严格模式:
2.1 从Godaddy下载证书文件
- 登录Godaddy的SSL证书管理后台,找到已购买的证书,点击「下载」
- 选择对应服务器类型(比如你的EC2用Nginx就选Nginx,Apache就选Apache),下载压缩包,里面包含:
- 主证书文件(通常是
.crt或.pem格式) - 私钥文件(
.key格式) - 中间证书(bundle文件,用于证书链验证)
- 主证书文件(通常是
2.2 把证书部署到EC2的Web服务器(以Nginx为例)
- 用SSH登录你的EC2实例,创建证书存放目录:
sudo mkdir -p /etc/nginx/ssl - 把下载好的三个证书文件上传到这个目录(可以用
scp命令,或者通过EC2的文件传输工具) - 编辑Nginx的站点配置文件(比如
/etc/nginx/sites-available/yourdomain.conf),添加HTTPS监听配置:server { listen 443 ssl; server_name yourdomain.com www.yourdomain.com; # 指定证书文件路径 ssl_certificate /etc/nginx/ssl/yourdomain.crt; ssl_certificate_key /etc/nginx/ssl/yourdomain.key; ssl_trusted_certificate /etc/nginx/ssl/yourdomain-bundle.crt; # 可选的SSL优化配置(提升安全性) ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # 你的网站根目录和其他原有配置 root /var/www/yourdomain; index index.html index.php; } - 添加HTTP转HTTPS的规则,在同一个配置文件里新增80端口的server块:
server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$server_name$request_uri; } - 测试Nginx配置是否正确:
sudo nginx -t,如果显示「test is successful」就重启Nginx:sudo systemctl restart nginx
2.3 Cloudflare端切换到严格加密模式
回到Cloudflare的「SSL/TLS」选项卡,把加密模式改成「严格」,这样Cloudflare会验证EC2上的Godaddy证书有效性,确保全程HTTPS安全。
第三步:验证配置是否生效
- 打开浏览器访问你的域名,看地址栏是否显示绿色锁图标,点击锁可以查看证书信息(方案一显示Cloudflare的证书,方案二显示Godaddy的证书)
- 用命令验证:
curl -v https://yourdomain.com,检查响应头里是否有HTTP/2 200,以及证书相关的信息 - 检查缓存是否正常:看响应头里的
CF-Cache-Status字段,显示HIT就是命中缓存,MISS是未命中,属于正常现象
内容的提问来源于stack exchange,提问作者raju_odi
相关产品推荐
相关产品推荐

