我正在寻找一种廉价的 AWS 服务,它可以终止 TLS,还可以负责为内部应用程序签署 Amazon 证书。我发现我可以使用 Cloudfront 和指向 EC2 实例公共 IP 的自定义源。
我已经构建了上述设置,并且它运行良好,但我必须向全世界开放我的 EC2 实例上的应用程序端口,并且它使用 http。这安全吗?还是我的成本优化毫无意义?
谢谢你的帮助! :)
答案1
据我所知,如果 Cloudfront 终止 SSL,那么您就无法在后端使用 HTTPS,而必须是来自 Cloudfront<-->EC2 的 HTTP。
如果您通过 HTTP 直接在 Internet 上打开了同一个 Web 应用程序/服务器,那么就会绕过 Cloudfront,并且您会失去 Cloudfront 提供的任何缓存/保护/SSL 终止/成本节省。
您还可以使用 AWS Classic Load Balancer 反向代理 HTTP(将 HTTP 转发到您的 EC2)并提供一个抽象层,并为将 HTTP 直接传输到您的 EC2 实例提供进一步的保护。
答案2
您可以指定 CloudFront 从源服务器获取对象时使用的源协议策略。您可以指定 HTTPS。注意事项如下:
- 必须是自定义来源(Amazon EC2 实例、Elastic Load Balancing 负载均衡器、MediaPackage 来源、MediaStore 容器或您自己的 Web 服务器)
- 对于 CloudFront 转发到此源的 HTTPS 查看器请求,源服务器上的 SSL 证书必须与您为源域名指定的域名匹配。否则,CloudFront 将使用 HTTP 状态代码 502(错误网关)响应查看器请求,而不是返回请求的对象
请注意粗体文字。