如何为我的 Elastic Beanstalk Java 应用程序启用 HTTPS?
Posted
技术标签:
【中文标题】如何为我的 Elastic Beanstalk Java 应用程序启用 HTTPS?【英文标题】:How do I enable HTTPS for my Elastic Beanstalk Java application? 【发布时间】:2021-01-02 04:14:14 【问题描述】:我的实例是单实例,没有负载均衡器。
我似乎无法向现有应用实例添加负载均衡器。
关于 Elastic Load Balancer 的其他建议已过时 - AWS 中似乎没有此类服务。
我不需要缓存或边缘交付 - 我的应用程序完全是事务性 API,因此可能不需要 CloudFront。
我有一个域名和一个名称服务器(AWS 外部)。我有一个证书(在证书管理器中生成)。
【问题讨论】:
“我似乎无法将负载均衡器添加到我现有的应用程序实例。” - 你能解释一下你的意思吗?尝试时有什么错误吗? 【参考方案1】:CloudFront 是添加 SSL 终止的最简单和最便宜的方法,因为 AWS 将通过其与证书管理器的集成为您处理这一切。
如果添加 ELB,则必须 24/7 全天候运行,这将使单实例服务器的成本增加一倍。
如果您想在服务器本身上支持 SSL 终止,您将不得不自己执行此操作(使用您的 Web 容器,例如 apache、nginx、tomcat 或您正在运行的任何东西)。它不容易设置。
即使您不需要缓存,CloudFront 也值得仅用于处理您的证书(就像从下拉列表中选择证书一样简单)。
【讨论】:
【参考方案2】:我最终使用了 CloudFront。
这造成了 cookie 无法通过的问题。
我创建了一个自定义缓存策略来允许 cookie,在这样做的过程中,我还将缓存 TTL 更改为非常低。这符合我的目的。
【讨论】:
以上是关于如何为我的 Elastic Beanstalk Java 应用程序启用 HTTPS?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Elastic Beanstalk 配置 Laravel?
如何为 Elastic Beanstalk 应用程序正确配置 Spring Datasource?
如何为在 64 位 Amazon Linux 2 上运行的 Elastic Beanstalk Python 3.7 项目安装节点包?