如何为我的 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 RDS 配置 Elastic Beanstalk

如何为 Elastic Beanstalk 配置 Laravel?

如何为 Elastic Beanstalk 应用程序正确配置 Spring Datasource?

如何为在 64 位 Amazon Linux 2 上运行的 Elastic Beanstalk Python 3.7 项目安装节点包?

如何为 Elastic Beanstalk DOCKER 环境设置永久 DNS 名称?

如何为 Elastic Beanstalk 的 Tomcat 实例提供自定义日志附加程序?