AWS网站SSL证书异常:非HTTPS访问显示不安全,求解决方法
解决AWS SSL证书部署后HTTP访问仍显示不安全的问题
兄弟,这个问题我太熟了——本质上就是你的网站没把默认的HTTP请求强制转到HTTPS上,浏览器默认用HTTP访问自然会触发“不安全”提示,手动加https时才会用到你部署的SSL证书。结合你在AWS上的部署场景,给你分几种常见情况对应解决:
情况1:用CloudFront做CDN分发
- 登录AWS控制台,打开CloudFront服务,找到你对应域名的分发
- 切换到「行为」标签页,点击「编辑」默认行为
- 在「查看器协议策略」下拉框里选择**「重定向到HTTPS」**,保存配置
- 耐心等15-30分钟让CloudFront分发生效,之后再访问不带https的域名就会自动跳转了
情况2:用Application Load Balancer(ALB)
- 打开EC2控制台,找到你的ALB实例
- 切换到「监听器」标签页,点击「添加监听器」
- 配置监听器:协议选HTTP,端口填80;然后添加规则,把所有请求重定向到HTTPS(443端口),重定向类型选301(永久重定向,对SEO更友好)
- 保存配置后,HTTP请求就会被ALB自动转到HTTPS了
情况3:直接在EC2上部署Web服务器(Nginx/Apache)
如果你的SSL证书是直接部署在EC2的Web服务器上,那需要在服务器层面配置重定向:
Nginx配置
- 打开你的站点配置文件(比如
/etc/nginx/sites-available/mydomain.conf) - 添加一个监听80端口的server块,用来重定向:
server { listen 80; server_name mydomain.com www.mydomain.com; return 301 https://$server_name$request_uri; } - 重启Nginx生效:
sudo systemctl restart nginx
Apache配置
- 先启用rewrite模块:
sudo a2enmod rewrite - 在你的虚拟主机配置文件或者站点根目录的
.htaccess里添加以下规则:RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] - 重启Apache生效:
sudo systemctl restart apache2
额外检查点
- 确认你的SSL证书是SAN证书,同时包含
mydomain.com和www.mydomain.com两个域名(不过你说加https后显示安全,这个大概率没问题,但还是可以去AWS Certificate Manager里确认下) - 检查DNS记录:确保
mydomain.com和www.mydomain.com都正确指向你的AWS资源(CloudFront域名、ALB域名或EC2公网IP) - 测试时用浏览器隐私窗口,避免旧缓存干扰
内容的提问来源于stack exchange,提问作者yodeveloper
相关产品推荐
相关产品推荐

