我有一个运行 .Net 4.8 的 WCF 客户端,我想通过使用 TLS 侦听器的 AWS 网络负载均衡器连接到我们的 WCF 服务。问题是我无法通过它连接。当我在 NLB 中使用 TCP 侦听器时,我可以正确连接。
我就这个问题联系了 AWS 支持,经过一番调查,他们确认我的 NLB 配置没有问题,并建议我的 WCF 客户端必须启动与 NLB 的 TLS 侦听器的 TLS 通信,才能通过 TLS 正确通信。
但根据我的研究,WCF 服务是规定客户端安全要求的服务。在此Microsoft 资源的第一行中提到了这一点。有没有办法强制我的 WCF 客户端启动 TLS 通信?
我的客户端代码中已经有:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
在我的客户端配置文件中,我在绑定配置中有这个。
<security mode="Transport">
<transport clientCredentialType="None"
protectionLevel="EncryptAndSign"
sslProtocols="Tls12" >
</transport>
</security>
此外,当我在 TCP 侦听器上成功通信期间检查数据包时,在 TCP 握手之后,客户端和服务在启动 TLS 通信之前交换了一些信息。不确定这是否重要,但我只想说明这一点。
我需要 WCF 客户端的行为类似于配置为使用 TLS 的浏览器,它是启动与正在与之通信的后端实体的 TLS 通信的人。(例如网络服务器、负载均衡器等)
有没有办法强制我的 WCF 客户端启动 TLS 通信?