当前位置: 首页 > 知识库问答 >
问题:

AWS弹性豆茎VPC-从ELB到实例的HTTPS

白灿
2023-03-14

我试图找出管理EB docker应用程序的HTTPS的最佳方式。

目前我正在使用下面的方法。

    < li>ELB接受443上的HTTPS连接,并转发到实例上的HTTP端口80。 < li>ELB接受80上的HTTP连接,并转发到实例上的HTTP端口8080。 < li >实例接受端口80上的HTTP连接,并转发到docker app。 < li >实例接受端口8080上的HTTP连接,并将它们重定向到HTTPS。

这一切都相当有效。这意味着Docker应用程序根本不必担心重定向。它只是侦听端口 80,并做它的事情。ELB 和泊坞窗主机将完成其余的工作。

我对这个设置唯一的担心是docker应用程序不知道它正在安全运行。如果我在我的应用程序中检查这个,它会失败。

我想将我的docker应用程序与域名和可能会改变的SSL证书完全分开,所以我更愿意继续终止ELB的原始HTTPS连接。我想知道是否有某种方法可以让docker主机(或ELB)以HTTPS协议转发(重新加密)请求,但使用自签名证书,这样我可以保持它完全通用。

需要明确的是,这只会发生在ELB和/或docker主机和我的docker应用之间,而不会发生在浏览器上。

如果我创建了一个未过期的自签名证书,然后在docker应用程序中向web服务器注册该证书(当前使用Apache2,但可能使用nginx),然后简单地告诉ELB或docker主机以HTTPS格式转发请求,这行得通吗?或者它会因为证书不可信而在某个时候失效吗?

或者,是否有某种方法能够在docker应用程序Web服务器上终止HTTPS连接,而无需实际预生成证书(我猜没有,因为大概需要动态生成证书或其他东西)。

有没有推荐的最佳实践方法来做这种事情?

共有1个答案

乜昆
2023-03-14

当您的负载均衡器终止客户端连接并转发到后端时,一种常见的解决方案是让负载均衡器将标头添加到后端请求中,以填充通过让负载均衡器删除的任何信息。

ELB有一个关于这方面的页面,并使用了以下标题:

    < Li > < code > X-Forwarded-For -客户端IP < Li > < code > X-Forwarded-Proto -方案/协议 < Li > < code > X-Forwarded-Port -传入端口。

通常不允许直接从客户机发送这些标头,除非它们是受信任的客户机。我想ELB会帮你解决这个问题。

 类似资料:
  • 有人知道是否有可能将现有的AWS弹性豆茎环境更改为应用程序负载平衡器(而不是经典的负载平衡器)。 据我所知,只有应用程序ELB可以被AWS WAF和DDOS“屏蔽”保护,所以任何现有的EB应用程序都不能利用这些特性,因为他们有经典的ELB。

  • 配置验证异常:AWS Elastic Beanstatk无法与Amazon EC2通信以确定是否为Elastic Load均衡创建自定义安全组。 在创建AWS Elastic Beanstalk应用程序时,我在尝试继续“查看和启动”时遇到了这个错误。我是新手。请帮忙。

  • 我是AWS的新手,这个问题似乎很基本。然而,我需要看看我是否能找到解决方案。 我首先创建并启动了一个 EC2 实例,然后创建了一个弹性 Beanstalk 实例,并在该实例上部署了一个示例应用程序。默认情况下,弹性 Beanstalk 会将“默认环境”附加到此实例,我无法将其更改为我的 EC2 实例。如何将我的 EC2 实例(我之前创建的实例)附加到此弹性豆茎实例?我正在使用亚马逊免费套餐来学习。

  • 我尝试创建新的环境,然后给出应用程序版本的s3桶路径,但它不起作用。(给出了一些错误,说“这只能在VPC中完成”)。

  • 我正在创建一个角6前端应用程序。我的后端api是在DotNet中创建的。假设应用程序类似于https://www.amazon.com/。 我的查询只与AWS上的前端部分部署相关。我的门户上预计会有大量具有可变计数模式的用户。我想到使用AWS弹性豆茎作为PAAS web服务器。 AWS S3/ELB可以不受任何限制地代替PAAS beanstalk吗?

  • 我可以用超文本传输协议浏览网站,但不能用https,我ChromeERR_CONNECTION_REFUSED。 我的环境是Nodejs(64bit AmazonLinux2015.09 v2.0)上的ExpresJS服务器,运行在Elastic Beanstalk上。我可以在端口80上telnet到EC2弹性公共IP,但在端口443上无法telnet,连接被拒绝。 设置 HTTPS 的步骤 >