【发布时间】:2019-06-08 21:13:45
【问题描述】:
我有一个托管在 IIS 上的 ASP.Net Web 应用程序。 Web 应用程序(一个 Umbraco 站点)配置为在 IIS 中具有 HTTP 绑定,并且 SSL 证书绑定到 AWS 中的应用程序负载均衡器 (ALB),该应用程序负载均衡器用于通过 HTTPS 管理用户请求。这意味着当用户请求资源时,ALB 会将任何 HTTP 流量重定向到 HTTPS,然后通过端口 80(VPC 内的内部流量)将请求转发到 IIS。
对于大多数资源来说,这绝对没问题,但有少数资源(字体和图像)似乎是通过 HTTP 请求的,这会导致浏览器中出现混合内容警告。我已经尝试过 HTTP -> IIS 中的 HTTPS 重写规则和出站规则来重写响应,但这似乎无法解决问题。
谁能帮忙?
【问题讨论】:
-
这些资源的 URL 是否在您的 Web 服务器域之外?如果是,您将需要编辑这些 url 以使用 https。还要检查你的域中的 url 是否没有在前面用
http://硬编码。 -
不,它们都是应用程序的相对 url
-
如果它们与您的应用程序相关并且您的应用程序在 IIS 的 80 端口上运行,那么它们将使用 http 作为协议。请记住 IIS 认为它通过 HTTP 提供内容,除非您正在处理
X-Forwarded-Proto标头。使用 Chrome 或 Edge 中的调试器验证这一点。查看作为页面一部分下载的每个对象(查看完整的 url 而不仅仅是文件部分)。
标签: asp.net amazon-web-services ssl iis mixed-content