AWS EC2实例仅支持HTTP响应 如何配置使其可通过HTTPS访问
配置步骤说明
1 给EC2上的3030端口服务添加HTTPS监听
AWS不为EC2默认公有域名颁发可信SSL证书,你可以二选一实现:- 方案一(生产环境推荐):注册一个自定义域名,将域名解析指向EC2公网IP,通过Let's Encrypt申请免费可信SSL证书,给3030端口运行的服务配置SSL证书,开启HTTPS监听。配置完成后先验证
https://你的自定义域名:3030/api/status可正常访问。 - 方案二(测试环境临时用):在EC2上生成自签名SSL证书,给3030端口服务配置HTTPS监听,后续CloudFront配置时关闭源站证书校验即可。
- 方案一(生产环境推荐):注册一个自定义域名,将域名解析指向EC2公网IP,通过Let's Encrypt申请免费可信SSL证书,给3030端口运行的服务配置SSL证书,开启HTTPS监听。配置完成后先验证
2 调整CloudFront配置适配HTTPS回源
如果你是通过CloudFront转发请求到EC2,按以下要求修改配置:- 源站设置中,将源站协议策略改为
HTTPS only,源站端口填写3030 - 若用自签名证书,需要关闭源站SSL证书校验选项,同时源站SSL协议至少勾选TLS 1.2及以上版本
- 确认缓存策略允许
/api/status接口需要的请求头、查询参数透传,避免被CloudFront拦截 - 如果你需要直接用EC2的公有域名作为CloudFront的访问域名,需要将该EC2域名添加到CloudFront的备用域名(CNAME)列表,同时为CloudFront分配覆盖该域名的SSL证书
- 源站设置中,将源站协议策略改为
3 校验网络访问规则
确认EC2实例关联的安全组入站规则开放3030端口的访问,允许CloudFront的IP段或者你需要的访问来源请求。如果EC2内部开启了ufw、firewalld等本地防火墙,也同步放行3030端口的入站流量。4 验证生效
CloudFront配置修改后需要等待5-10分钟分发生效,之后访问目标地址https://ec2-18-233-225-132.compute-1.amazonaws.com:3030/api/status确认返回结果正常即可。
如果你的需求是不需要经过CloudFront,直接让EC2的HTTPS地址可访问,只需要完成第一步和第三步配置即可。
内容的提问来源于stack exchange,提问作者Arefe
相关产品推荐
相关产品推荐

