asp.net-mvc-4 - 反向代理后面的 SignalR 1.x 执行 SSL/TLS 终止

标签 asp.net-mvc-4 ssl signalr reverse-proxy

理论上,这应该是一个相当常见的用例。负责 SSL/TLS 终止的反向代理后面的 .NET 网络服务器。

但是出于某种神秘的原因,这对我不起作用。我使用 Pound 反向代理。我在配置中有以下内容。

HeadRemove  "X-Forwarded-Proto"
AddHeader   "X-Forwarded-Proto: https"

Chrome 显示“无法加载资源:服务器响应状态为 403(禁止:SignalR 跨域已禁用。)”。

在 web.config 中,我将以下内容添加到 system.webServer

<httpProtocol>s
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="https://some.domain.fake" />
  </customHeaders>
</httpProtocol>

据我了解,我不需要 CORS,因为我没有执行任何跨域请求。请注意,如果我使用非 SSL uri,一切正常。

以下错误似乎是相关的,但它们应该被修复,并且与我遇到的问题不完全相同。 Bug with same origin check behind reverse proxies/load balancers etc. Bug with same origin check behind reverse proxies/load balancers for SSL requests.

我已经搜索了很长时间以找到解决方案,但令我惊讶的是没有更多人遇到同样的问题。

问题是:我该如何解决这个问题?

最佳答案

如果您的反向代理正在设置 Origin header ,服务器会将其解释为 CORS 请求。

您可能需要使用 Microsoft.Owin.Cors NuGet package允许来自您的反向代理在 Origin header 中设置的任何来源的 CORS 请求。

http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client#crossdomain

关于asp.net-mvc-4 - 反向代理后面的 SignalR 1.x 执行 SSL/TLS 终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22237130/

相关文章:

asp.net-mvc-4 - 如何在 MVC4 中呈现远程 ReportViewer aspx 页面?

html - Amazon s3 文件上传到存储桶成功后不重定向

c# - 传入字典的模型项在 ASP.net MVC 中属于“System.Collections.Generic.List...”类型

python - 使用Python检测SSL哈希算法

docker - 将 docker cert 添加到新的 K8s 节点

javascript - SignalR 卡住在 'Initiating start request'

c# - Entity Framework 5.0 代码中第一个一对一和一对多的关系

android - 安全 API 访问 : best strategy to secure readonly rails api for android client

javascript - 我的 javascript SignalR Azure 连接未触发事件

c# - 有没有办法对连接到 Azure SignalR 的用户进行身份验证?