删除AWS ELB后网站SSL故障求助(Bitnami WordPress环境)
解决方案:删除ELB后CloudFront+Bitnami WordPress的SSL故障修复
以下是针对性的排查和修复步骤:
1. 验证CloudFront核心配置
- 确认CloudFront分发的自定义SSL证书状态为
已颁发,且是你重新生成的ACM证书(检查证书的域名覆盖范围是否包含786times.com及*.786times.com)。 - 检查默认缓存行为的查看协议设置:选择
HTTPS 仅限或HTTP 和 HTTPS,确保未设置为HTTP 仅限。 - 核对源配置的源协议策略:
- 若CloudFront连接EC2的80端口:设置为
HTTP 和 HTTPS; - 若连接EC2的443端口:设置为
HTTPS 仅限,同时确保EC2上的Web服务器SSL配置正常(Bitnami默认自带证书,可暂用默认证书测试)。
- 若CloudFront连接EC2的80端口:设置为
2. 修正Bitnami WordPress内部URL配置
登录EC2实例,通过wp-config.php强制站点使用HTTPS:
// 在wp-config.php中添加以下代码(位于/* That's all, stop editing! Happy publishing. */之前) define('WP_HOME','https://786times.com'); define('WP_SITEURL','https://786times.com');
3. 配置Web服务器识别CloudFront的HTTPS转发
若使用Apache:
编辑/opt/bitnami/apache/conf/bitnami/bitnami.conf,添加以下内容到<VirtualHost>块内:
SetEnvIf X-Forwarded-Proto "https" HTTPS=on
重启Apache:
sudo /opt/bitnami/ctlscript.sh restart apache
若使用Nginx:
编辑/opt/bitnami/nginx/conf/bitnami/bitnami.conf,在server块内添加:
if ($http_x_forwarded_proto = 'https') { set $scheme https; }
重启Nginx:
sudo /opt/bitnami/ctlscript.sh restart nginx
4. 清除CloudFront缓存并等待部署完成
- 在CloudFront控制台,进入对应分发的缓存标签,点击
创建无效,输入/*提交无效请求,清除所有缓存。 - 确认分发状态为
已部署(部署通常需15-30分钟,期间不要重复修改配置)。
5. 修复WordPress混合内容问题
若浏览器提示混合内容(HTTP资源加载到HTTPS页面),登录EC2运行WP-CLI命令替换数据库内的HTTP链接:
wp search-replace 'http://786times.com' 'https://786times.com' --allow-root
6. 最终验证
- 使用
dig 786times.com确认DNS记录指向CloudFront分发域名; - 打开浏览器的开发者工具(F12),切换到
Security标签,查看证书详情及是否有混合内容警告; - 使用SSL检测工具验证证书配置及链完整性。
内容的提问来源于stack exchange,提问作者786Times
相关产品推荐
相关产品推荐

