Java 使用自动SSL证书在AWS Elastic Beanstalk上部署Spring引导应用程序
假设我有一个Spring Boot项目,它生成一个JAR文件Java 使用自动SSL证书在AWS Elastic Beanstalk上部署Spring引导应用程序,java,amazon-web-services,spring-boot,ssl,amazon-elastic-beanstalk,Java,Amazon Web Services,Spring Boot,Ssl,Amazon Elastic Beanstalk,假设我有一个Spring Boot项目,它生成一个JAR文件www.example.com.JAR,该文件使用其嵌入式HTTP服务器显示一个显示“example”一词的示例页面 我想在AWS Elastic Beanstalk上部署这个裸JAR文件 我希望自定义域支持SSL/TLS,即https://www.example.com/ 我想使用Amazon自己的Amazon证书管理器 我希望Amazon证书管理器根据需要自动续订证书 如果需要DNS,我很乐意使用亚马逊的53号路线 如有必要,我愿
www.example.com.JAR
,该文件使用其嵌入式HTTP服务器显示一个显示“example”一词的示例页面
- 我想在AWS Elastic Beanstalk上部署这个裸JAR文件
- 我希望自定义域支持SSL/TLS,即
https://www.example.com/
- 我想使用Amazon自己的Amazon证书管理器
- 我希望Amazon证书管理器根据需要自动续订证书
- 如果需要DNS,我很乐意使用亚马逊的53号路线
- 如有必要,我愿意使用负载平衡器
- 如有必要,我愿意使用亚马逊的CloudFront
- 我不想要一个解决方案,使我手动更新证书,并随时复制到某个地方
- 我不想要一个需要我创建EC2实例的解决方案;我想部署一个裸JAR
- 我想在AWS Elastic Beanstalk上部署这个裸JAR文件
- 我不想要一个需要我创建EC2实例的解决方案;我想部署一个裸JAR
这两种说法对我来说毫无意义。您想使用Elastic Beanstalk,但不想使用EC2实例?Elastic Beanstalk只是一个为您管理EC2实例的服务。当您使用Elastic Beanstalk部署应用程序时,它将创建一个或多个EC2实例,并在这些实例上部署应用程序 要将Spring引导应用程序部署到Elastic Beanstalk,请执行以下操作 为了满足SSL要求,您需要在AWS ACM中为您拥有的域()创建SSL证书,并选择DNS验证。然后创建它告诉您的DNS记录,以验证您对域的所有权
接下来,使用负载平衡器将Java应用程序部署到Elastic Beanstalk。然后将AWS ACM证书附加到负载平衡器。最后,为
www.example.com
创建一个DNS CNAME记录,该记录指向负载平衡器的DNS名称。除非您试图将根域(example.com
而不是www.example.com
)指向您的负载平衡器,否则不需要使用Route53来实现此目的。可能已经满足了所有这些要求,但可能自动续订/重新安装证书除外:
- 是的,AWS Elastic Beanstalk上的裸Spring引导JAR文件
- 是的,我的自定义域的SSL/TLS支持,即
- 是的,确实使用了亚马逊自己的亚马逊证书管理器
- 我不知道,但我希望Amazon证书管理器会根据需要自动更新证书
- 是的,亚马逊的53号路线是我用于DNS的
- 是的,我崩溃了,愿意使用负载平衡器,并且使用了一个
- 我还不知道CloudFront的情况
- 不必直接设置EC2实例
我已经做了四五天了,所以我的头还是有点发晕。我最初启动应用程序时遵循的方向是。“Elastic Beanstalk只不过是为您管理EC2实例的服务。”我不清楚这一部分。根据描述,我认为Elastic Beanstalk会获取我的JAR文件并“只需部署它”;如果它需要在幕后创建一个EC2实例,我想它会对我隐瞒这一点。我已经广泛使用了S3内容的静态网站服务,在这种情况下,AWS隐藏了所有虚拟机和HTTP服务器实现细节;我想在这里也一样。我现在正在阅读官方的开发者指南,也许这会变得更清晰。它不会对你隐瞒任何事情。它为您创建的EC2实例和负载平衡器将显示在您的EC2控制台中。不过,您不必登录到这些服务器并执行任何管理任务。Elastic Beanstalk可以为您处理所有这些。这很有帮助,但正如我想象的那样,有很多与SSL相关的问题无法自动处理,而且信息很难处理。目前我正在尝试将HTTP重定向到HTTPS。每个Elastic Beanstalk应用程序/环境是否都有自己独立的应用程序负载平衡器?我如何判断哪个负载平衡器用于某个环境?我是否必须在EC2部分的负载平衡器中添加HTTP->HTTPS规则?为什么我不能在Elastic Beanstalk负载平衡器配置部分指定此规则?是否有更简单的方法重定向所有HTTP->HTTPS f