【问题标题】:AWS Elastic Beanstalk (single instance) : how to enable HTTPS for a Spring Boot application?AWS Elastic Beanstalk(单实例):如何为 Spring Boot 应用程序启用 HTTPS?
【发布时间】:2020-11-09 03:55:09
【问题描述】:

我最近开始探索 AWS,并在单个 Elastic Beanstalk 实例上成功部署了 Spring Boot 应用程序。 下一步,我想让我的应用程序使用 HTTPS。鉴于我的应用是打包成 jar 包的,所以我严格按照官方文档:Terminating HTTPS on EC2 instances running Java SE.

但我的应用仍然只能使用 HTTP。有没有人设法这样做?任何帮助或指向工作示例的链接将不胜感激。

关于我的应用的一些技术细节:它是一个基于 Maven 的 Spring Boot 项目。正如文档中所解释的,我已经在我的项目的根目录中创建了包含所有配置文件的 +.ebextensions+ 文件夹。然后我使用 maven-antrun-plugin 将 .ebextensions 文件夹包含在 jar 文件中。

提前感谢您的回答。

【问题讨论】:

    标签: java spring-boot https amazon-elastic-beanstalk


    【解决方案1】:

    您可能正在使用当前版本的 EB,它适用于 Amazon Linux 2 (AL2);问题中没有说明使用的是什么。您链接的教程使用旧版 EB,适用于 Amazon Linux 1 (AL1)。

    随后,它将无法正常工作。具体来说,教程中的nginx 设置(.ebextensions/nginx/conf.d/.ebextensions/nginx/conf.d/https.conf)将被忽略。原因是对于 AL2,应提供 nginx 设置 using .platform/nginx/conf.d.platform/nginx/nginx.conf

    另外请注意,EB 中的 AL1 和 AL2 之间存在许多差异,本教程可能需要进行更多更改才能使其在 AL2 上运行:

    由于您的问题中没有明确说明您使用的是哪个版本的 EB,如果这确实是 AL2,您可以尝试使用旧版本的 AL1 运行您的应用程序。这至少可以让您确认它确实有效。然后你可以考虑如何将它移植到 AL2。

    【讨论】:

    • 你说得对,我已经创建了我的 EB 实例来使用 Java Corretto 11,因此也使用了 Amazon Linux 2。我会检查你提供的链接,看看我是否可以通过 HTTPS 访问使用我的应用程序。使用 Java 8 和 Amazon Linux 1 重新创建 EB 环境将是我的 B 计划。
    • 我快速尝试调整我的应用程序 Nginx 配置以符合 AL 2 文件夹结构,但它不起作用。最终,我创建了一个使用 Java 8 和 AL 1 的新 EB 环境,使用 Java 8 重建了我的项目,并且可以让 HTTPS 工作。非常感谢您的指点!
    • @kyiu 很高兴它成功了。因此,如果您愿意,现在可以考虑如何将其移植到 AL2 :-)
    猜你喜欢
    • 2017-11-26
    • 2017-09-28
    • 2020-11-09
    • 2021-01-02
    • 2020-07-05
    • 2019-04-20
    • 2015-09-07
    • 2019-12-18
    • 2018-08-14
    相关资源
    最近更新 更多