在HTTPS反向代理后面仅显示HTTP WCF服务

时间:2018-01-22 07:49:15

标签: web-services wcf https asp.net-core reverse-proxy

我们目前正在构建一个基于ASP.NET Core的公司反向代理,目的是将非公共客户端服务公开给互联网。

它应该像这样工作:

Browser\App ==HTTPS==> ReverseProxy ==HTTP in VPN Tunnel==> WCF Service

我们当前的问题是客户端使用WsHttpBinding在HTTP中公开WCF服务,而我们的反向代理仅接受HTTPS。这导致应用程序和服务的通信方式存在差异,因为WCF服务仅接受HTTP,但应用程序只能使用HTTPS。

此差异导致希望在反向代理后使用WCF服务的客户端应用程序失败并显示Provided URI scheme 'https' is invalid; expected 'http'. Parameter name: via。在SO上找到的所有解决方案基本上只指向编辑<security mode="None"><security mode="Transport">,但在app.config上执行此操作会导致另一个例外:WsHttpBinding doesn't support reliable sessions over transport security (https)

有没有办法在不强制客户端在其Web服务中实现HTTPS的情况下,允许它工作?

据我所知,在负载均衡器后面使用WCF服务时这是一个常见问题(这基本上就是我的应用程序正在做的事情)。如果我在HTTP中使用我的反向代理,一切正常,但如果我启用HTTPS则不行。许多问题通过编辑服务定义得到解决,这是我不能做的事情,因为服务是第三方公司。

0 个答案:

没有答案