【问题标题】:How reverse proxy with SSL/TSL and plain traffic works?SSL/TSL 和普通流量的反向代理如何工作?
【发布时间】:2020-07-14 14:31:58
【问题描述】:

我有一个使用

创建的容器化 Docker ASP.NET Core 应用程序
mcr.microsoft.com/dotnet/core/runtime:3.1.3-alpine 

启动时,对端口的唯一引用是基础映像中的这个 ENV 变量

ASPNETCORE_URLS http://+:80

我将应用程序部署到 Azure,设置了注册表并创建了一个新的 Web 应用程序。
我设置了 TLS/SSL 设置以仅使用 https。

一切正常。

问题:

我想知道这是怎么可能的,因为我没有在我的容器上配置证书,我想 Kudu 服务(反向代理)将 443 端口重新绑定到容器的 80。这是真的 ? Kudu 和 80 端口上的容器之间的普通 http 流量可能会导致安全漏洞?

如果我使用 NGINX 部署一个容器作为 ASP.NET Core 的反向代理,我必须将 TSL/SSL 配置到 NGINX 中吗?在 ASP.NET 核心上?一个都没有?

我想了解 Kudu、NGINX 和反向代理在使用和不使用 SSL/TSL 的情况下一般是如何工作的

【问题讨论】:

    标签: azure docker ssl reverse-proxy azure-web-app-service


    【解决方案1】:

    使用Reverse Proxy,客户端永远不会连接到您应用程序中的HTTP 服务器,在您的情况下为Kestrel。您获得的连接是来自反向代理的请求,您将响应发送回反向代理。大多数 HTTP 内容都是从传入的客户端请求中复制并传递给您的应用程序,但反向代理可以终止 SSL 隧道、卸载 Authentation 并执行其他请求转换。

    【讨论】:

    • 基本上客户端通过 http(s) 连接到 Azure,接下来 Kudu 代理通过 http 将请求转发给 kestrel。并且普通的 http 不是问题,因为它是在内部 azure 网络上制作的。使用相同的逻辑,我可以在 kestrel 的前面安装 nginx。这是正确的吗?
    • 这是应用服务前端,不是 Kudu,但是是的。应用服务环境的体系结构更明确地记录,但共享托管计划也是如此。 docs.microsoft.com/en-us/azure/app-service/environment/…
    • 大卫,感谢您的耐心等待。您的回答引发了另一个问题:这是应用服务前端,不是 Kudu,但是是的 Kudu 的作用是什么?非常感谢。
    • "Kudu 是 Azure 应用服务中 git 部署背后的引擎。它也可以在 Azure 之外运行。" github.com/projectkudu/kudu
    猜你喜欢
    • 2019-05-29
    • 2015-06-02
    • 2017-03-11
    • 2016-11-17
    • 2012-10-20
    • 2023-03-25
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多