【发布时间】:2021-12-25 05:55:03
【问题描述】:
我有一个在 Windows 服务上托管 WebAPI (HttpSelfHostServer) 的应用程序。 通过 SSL 进行通信(本地主机的自签名证书)。 现在我有两种情况:
- Windows7 - 调用 API 方法时(例如从浏览器),我看到使用了 TLS 1.0
- Windows10 - 相同的调用,但这里有 TLS1.2
在这两种情况下都是同一个应用程序。此外,我在服务的入口点设置了以下属性
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
当我在 Win7 的 IE 上打开任何页面时,我可以看到 TLS1.2 没问题。 我必须做什么才能在 Win7 上的 WebAPI 中强制通过 TLS1.2 进行通信?
有什么想法吗?
【问题讨论】:
-
调用者应该使用
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;来强制TLS 1.2 连接。要为您的自托管 Web 服务强制实施 TLS 1.2,您应该修改服务器端 TLS 注册表项以禁用旧版本。 -
@LexLi - 你是对的。修改注册表项解决了这个问题。
标签: c# .net ssl asp.net-web-api self-host-webapi