【问题标题】:How to configure service endpoints for WCF service behind offloaded SSL with HTTPS in WSDL如何在 WSDL 中使用 HTTPS 为卸载 SSL 后的 WCF 服务配置服务端点
【发布时间】:2023-03-20 13:49:01
【问题描述】:

我的部署环境在我的 IIS 7.5 托管 WCF 服务前面有 SSL 卸载(和负载平衡)硬件。所以虽然外面的世界会去

https://mydomain.com/MyService.svc

硬件将处理 SSL 并将流量转发到

http://myintranet/MyService.svc

但是,当我从外部获取 WSDL(通过添加“?wsdl”)时,WSDL 地址用于“http://mydomain.com/MyService.svc”——我的公共地址的不安全、非 SSL 版本。

我尝试显式设置 listenUri,但出现错误,因为我的站点还需要多个绑定(我在内部可以通过 SSL 卸载但通过负载均衡器访问它,或者绕过负载均衡器并到达站点(s) 直接):

When 'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' is set to true in configuration, the endpoints are required to specify a relative address. If you are specifying a relative listen URI on the endpoint, then the address can be absolute.

我尝试了多种基本地址、前缀过滤器、多个端点等的组合,但总是以一个错误或另一个错误告终。尽管我在谷歌上搜索得最好,但我找不到其他人使用此设置。

【问题讨论】:

  • 如果您有 SSL 卸载的场景,那么值得您考虑使用 basicHttpBinding,因为负载均衡器和您的 Web 服务器之间的流量将位于您自己的防火墙之后并且是安全的。但是,如果您要对用户名密码执行身份验证,请考虑检查 clearusernamebinding,它允许您通过 basichttpbinding 传输用户名 passowrd:webservices20.blogspot.com/2008/11/…
  • @Rajesh,我实际上已经使用了 SSL 卸载的替代策略 (blog.hackedbrain.com/2006/09/26/…)。但我仍然希望我生成的 WSDL 包含一个 HTTPS 端点 URI,而我的实际站点需要绑定到几个非 HTTPS 名称。
  • 您找到解决方案了吗?
  • 有没有任何方法可以克服这个问题。我面临同样的问题。谢谢

标签: wcf iis ssl https wcf-binding


【解决方案1】:

我们在让 SSL 卸载与 WCF 一起工作时遇到了麻烦。问题是相同的配置开关决定了允许的协议(必须是 http)和代理中发出的协议(必须是 https)。我们的答案是放弃 SSL 卸载要求。我们可能放弃得太容易了。

如果您比我们更顽强,您可以考虑尝试自定义 WSDL 导出器,如 here 所述。

【讨论】:

    【解决方案2】:

    我忘了我问过这个。我们最终确实找到了一个解决方案,虽然已经很久了,我不记得所有的细节。相反,我从我们现有的配置中提取我认为是关键点的信息。

    基本上,我们使用的是根据我们在野外找到的示例代码创建的“httpsViaProxyTransport”。这让 WCF 相信它是一种安全传输,即使它实际上只是 HTTP。

    然后在 /configuration/system.serviceModel/serviceHostingEnvironment 中,我们设置一些 baseAddressPrefixFilters。我们同时设置了 HTTP 和 HTTPS,因为我们有时会在 NLB/SSL-offloader 之后访问它。

            <baseAddressPrefixFilters>
              <add prefix="http://MyService.mydomain.com/"/>
              <add prefix="https://MyService.mydomain.com/"/>
            </baseAddressPrefixFilters>
    

    【讨论】:

      猜你喜欢
      • 2022-01-16
      • 2011-09-13
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      相关资源
      最近更新 更多