【发布时间】:2021-05-31 07:59:43
【问题描述】:
我已经设置了一个 AWS Elastic Beanstalk 环境。
到目前为止,一切都很好,SSL 在负载均衡器上工作,并将请求转发到后台 Linux 实例上的内部端口 80。
但是,当尝试使用开箱即用的“使用 Google 登录”/“使用 Office 365 登录”时,我现在收到 URL 引用错误,因为实例正在传递 http://www.domainname.com,因为它本身没有运行 SSL。
我已按照此处的指南进行操作:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-dotnet-linux.html
我有 SSL 证书和密钥,并设置了 conf 文件,但是实例似乎仍然不接受 SSL 连接。
我要么需要重写 _signInManager.ConfigureExternalAuthenticationProperties 方法以始终使用 HTTPS,要么让实例运行 HTTPS。
我尝试了不同的代理端口,80、5000 和 5001,但我认为 Kestrel 不需要证书,因为这是 Nginx 正在做的,并且在内部将流量代理到 HTTP kestrel 服务器?
我在 AWS 网络中也有一个实例,我可以通过 RDP 访问并运行本地网络请求,即浏览到其中一个实例的 http://10.x.x.x,这可以工作,但同样不能通过 HTTPS。
【问题讨论】:
-
这应该不是问题,因为 SSL 在 LB 上终止,并且 Elastic Beanstalk 环境应该只使用 HTTP 获取请求。您是否检查了 Elastic Beanstalk 环境中的日志?
-
所以 OAuth 请求是
http://,因为应用程序是http://- 这在技术上没问题,我只需要在https://而不是内部方案中获取 OAuth 请求 -
不确定我是否理解这个问题,但如果您想强制执行 SSL/HTTPS,那么您可以添加从 http 到 https 的重定向。如果您使用 ALB:aws.amazon.com/premiumsupport/knowledge-center/…
-
好的,要将 ALB 转发到的实例端口是什么?由于 443 在实例级别不起作用,只有端口 80。所以端到端加密也不存在
-
不过,可能是这个——stackoverflow.com/questions/61580965/…
标签: amazon-web-services ssl amazon-elastic-beanstalk