提问人:Saket Kumar 提问时间:11/9/2023 更新时间:11/9/2023 访问量:23
如何在请求级别设置TLS版本?
How to set TLS version at request level?
问:
我们在 .Net Framework 4.7 中有一个应用程序,它托管多个 API 端点。应用程序部署在多个服务器(其中一些服务器是旧的)中,并且不会从这些服务器强制执行 TLS 1.2+。这导致某些服务器将 TLS 设置为 1.1,而其他服务器将其设置为 1.2+。
到目前为止,一切正常,因为这些端点正在调用其他不需要 TLS 1.2 的 API。现在,其中一个下游 API 需要 TLS 1.2+,而其余 API 可能仍在使用 1.1。那么,想要检查我们是否可以只为其中一个 API 调用设置 TLS 1.2,而不是在应用程序级别设置它?
我们尝试了这段代码
var originalSecurityProtocol = ServicePointManager.SecurityProtocol;
try
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
// Make API call
}
finally
{
ServicePointManager.SecurityProtocol = originalSecurityProtocol;
}
但发现并发调用可能存在问题。我们可以尝试其他解决方案吗?
答: 暂无答案
评论
HttpClient
HttpClientHandler
HttpClientHandler.SslProtocols
HttpWebRequest
WebClient
HttpClient
HttpClient
IHttpClientFactory
ConfigurePrimaryHttpMessageHandler
ServicePointManager