amazon-web-services - Amazon EC2 中子域的 HTTPS 设置
问题描述
目标:为我的项目设置 HTTPS,前端使用 React,后端使用 Express.js
进展:我已经通过 Cloudfront 和 route53 为我在 Amazon s3 中的 react 应用程序成功设置了 HTTPS。我通过 Route53将域名(example.com)附加到云端分发来做到这一点
问题:由于我的应用程序通过http://ec2-00-00-00.compute-1.amazonaws.com调用通过 Amazon EC2 托管的后端 express.js,我看到混合内容错误,因为前端应用程序 (https) 正在尝试访问 ec2 公共 dns,即 http。
我正在尝试找出为我的后端 EC2 服务器设置 HTTPS 的最佳方法:我尝试了 nginx - certbot 但它不起作用,因为我没有将域名附加到 ec2 公共 dns 地址。
我尝试创建一个子域api.example.com,使用 Amazon Certificate Manager 购买了一个证书,并尝试为 api.example.com 设置路由 53 cname 记录以指向 EC2 实例公共 IP。当我尝试通过 https 访问端点时,这也不起作用。我的安全组配置看起来正确。
我对使用负载均衡器和购买新域感到困惑,有人能指出我正确的方向吗?由于这是一个附带项目,我不想采用昂贵的方法,但我愿意尝试任何最佳实践。
提前致谢!
解决方案
Amazon Certificate Manager 并尝试为 api.example.com 设置路由 53 cname 记录以指向 EC2 实例公共 IP。
ACM 证书不能用于实例,只能用于 ELB、CF 发行版和 API 网关。因此,您应该在您的实例上使用来自第三方的 SSL 证书(非自签名)。您正确尝试了 nginx - certbot 组合,这是执行此操作的正确方法。因此,我会研究为什么 nginx - certbot 不起作用,特别是因为您已经拥有自己的域。
推荐阅读
- java - 如何从具有所有依赖项和 JRE 的 JavaFX 应用程序制作 exe 文件?
- c# - 在 CAPI/CNG 中替换 PKCS #11 智能卡数据对象
- sql - 从 LIKE 查询和存储过程中获取不同的结果(开始和结束)搜索
- python - Matplotlib Xticks 混乱
- makefile - 让 Make 自动检测协议缓冲区的变化
- linux - 使用命令作为结束索引 valrible 运行 for 循环
- javascript - 在不同的计算机上无法识别新行
- ruby - 使这个 ruby 算法更快
- java - 将 Visual Studio Code 与 Titanum 一起使用时出现“未安装 JDK(Java 开发工具包)”
- xamarin - Picker,数据绑定,再一次有感觉