容器的 Azure 应用服务正在将 https 请求作为 http 转发到我的容器
Azure app service for containers is forwarding https requests as http to my container
我已经对 asp.net 核心应用程序进行了 docker 化,我正在为容器部署在 azure 应用程序服务上。
该应用程序在端口 80 上侦听 http,在端口 443 上侦听 https:
FROM mcr.microsoft.com/dotnet/aspnet:5.0-alpine as runner
ENV ASPNETCORE_URLS=https://+:443;http://+:80
WORKDIR /app
COPY --from=builder /publish .
ENTRYPOINT dotnet MyServer.dll
在天蓝色中,我将'Https only'选项设置为'on'(菜单中的'TLS/SSL settings'然后将'HTTPS Only'切换到'on')。
Azure 现在应该只允许 https 请求,并且它正确地做到了这一点。但是,当我记录来自我的应用程序的请求时,我看到请求的方案始终是 'http'。有没有办法在 https 请求到来时转发它们,而不让 azure 将它们转为 http?
我尝试将 'WEBSITES_PORT' 环境变量设置为“443”而不是默认的 80。但这只会导致网站无法正常工作。初始请求处于 'pending' 状态几秒钟,然后显示“502”错误。
如果我知道 运行 容器的 azure 有多好,也许我可以找出解决方法,即 azure 提供给 'docker run' 命令以启动我的容器的所有参数是什么.有没有办法在门户或其他任何地方找到此命令?
注意:提供了用于开发的 https 证书,以便在应用级别(在 kestrel 中)正确启用 https。
这是预期的行为。
App Service terminates TLS/SSL at the front ends. That means that TLS/SSL requests never get to your app. You don't need to, and shouldn't implement any support for TLS/SSL into your app.
我已经对 asp.net 核心应用程序进行了 docker 化,我正在为容器部署在 azure 应用程序服务上。
该应用程序在端口 80 上侦听 http,在端口 443 上侦听 https:
FROM mcr.microsoft.com/dotnet/aspnet:5.0-alpine as runner
ENV ASPNETCORE_URLS=https://+:443;http://+:80
WORKDIR /app
COPY --from=builder /publish .
ENTRYPOINT dotnet MyServer.dll
在天蓝色中,我将'Https only'选项设置为'on'(菜单中的'TLS/SSL settings'然后将'HTTPS Only'切换到'on')。
Azure 现在应该只允许 https 请求,并且它正确地做到了这一点。但是,当我记录来自我的应用程序的请求时,我看到请求的方案始终是 'http'。有没有办法在 https 请求到来时转发它们,而不让 azure 将它们转为 http?
我尝试将 'WEBSITES_PORT' 环境变量设置为“443”而不是默认的 80。但这只会导致网站无法正常工作。初始请求处于 'pending' 状态几秒钟,然后显示“502”错误。
如果我知道 运行 容器的 azure 有多好,也许我可以找出解决方法,即 azure 提供给 'docker run' 命令以启动我的容器的所有参数是什么.有没有办法在门户或其他任何地方找到此命令?
注意:提供了用于开发的 https 证书,以便在应用级别(在 kestrel 中)正确启用 https。
这是预期的行为。
App Service terminates TLS/SSL at the front ends. That means that TLS/SSL requests never get to your app. You don't need to, and shouldn't implement any support for TLS/SSL into your app.