提问人:Abhishek Avadhoot 提问时间:7/3/2023 最后编辑:Abhishek Avadhoot 更新时间:7/10/2023 访问量:954
请求已中止:无法在 c 中创建 SSL/TLS 安全通道#
The request was aborted: Could not create SSL/TLS secure channel in c#
问:
尝试在 Windows Server 2008 r2 中执行以下代码时,它会抛出错误,如“请求已中止:无法创建 SSL/TLS 安全通道”。我们已经启用了 TLS 1.1 和 1.2。请告诉我们如何解决它。此外,在尝试在 IE 中点击相同的 url 时,未启用 TLS 1.1、1.2 的错误。我们也可以使用 webview2 进行请求和响应。
string sURL = "https://connect.medlineplus.gov/service?mainSearchCriteria.v.cs=2.16.840.1.113883.6.88&mainSearchCriteria.v.c=897294&knowledgeResponseType=application/json";
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
WebRequest request = WebRequest.Create(sURL);
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";
WebResponse response = request.GetResponse();
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
sReponseInJson = reader.ReadToEnd();
dataStream.Close();
HttpWebRequest、httpclient 和 WebRequest。
**
从 medlineplus.gov 问题得到解决。他们制作了密码 与安全相关的更改,现在可以在 Win 2008 上使用上述请求 R2 也是。
**
答:
0赞
Hirasawa Yui
7/3/2023
#1
正如你在这里看到的:
https://www.ssllabs.com/ssltest/analyze.html?d=connect.medlineplus.gov&s=75.2.125.67&hideResults=on
您尝试连接到的网站已禁用除 TLS 1.2 之外的所有安全协议。因此,您必须执行相同的操作:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
评论
0赞
Abhishek Avadhoot
7/3/2023
是的,仅尝试使用 SecurityProtocolType.Tls12 进行相同操作,但仍然存在问题。
1赞
Charlieface
7/5/2023
这不是答案。 不应该乱七八糟,操作系统会自动处理它。这里的问题是操作系统,需要针对 TLS 1.2 和 ECDH 进行配置。ServicePointManager.SecurityProtocol
0赞
Hirasawa Yui
7/5/2023
the operating system will deal with it automatically
- 我希望你是对的,但可悲的是,没有。你有没有试过使用这些旧版本的Windows服务器?让 Tls1.2 在那里工作可能相当棘手。它将默认为除最新和最安全的 tls 之外的任何内容。
1赞
Charlieface
7/5/2023
@HirasawaYui 是的,我有,您需要做的就是安装最新的更新,在注册表中启用 TLS 1.2 和密码(或使用 IIS 加密),并使用最新版本的 .NET,然后一切正常。
评论
ServicePointManager.SecurityProtocol =
你为什么要这么做?为什么你还在使用2008R2,当它已经过时了,你是否至少应用了所有安全补丁,你是否在注册表中启用了TLS 1.2,如 support.microsoft.com/en-us/topic/ 所述......HttpClient