gpt4 book ai didi

c# - 无法创建 SSL/TLS 安全通道。安全通道故障

转载 作者:太空狗 更新时间:2023-10-29 17:58:50 48 4
gpt4 key购买 nike

使用 SSL 证书进行 SOAP 调用时出现 SSL 错误:

The request was aborted: Could not create SSL/TLS secure channel.

奇怪的是,如果我在 Firefox 中加载证书并在不发送任何数据的情况下访问端点或调用 API,我不会收到任何错误消息并且连接成功。公开 API 的公司还提到该证书是 kosher。

我正在加载的证书对“所有人”具有全部权限。我已经尝试了我在 Internet 上看到的所有解决方案,但仍然出现错误。

这是我创建请求的代码:

 ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var request = (HttpWebRequest)WebRequest.Create(plugin.EndPoint);
request.ContentType = "text/xml; charset=utf-8";
request.Method = "POST";

获取证书的代码(我也试过pfx):

var cert = new 
509Certificate2(@"C:\clientcert.p12", "FakePassword");
request.ClientCertificates.Add(cert);

请求代码:

  byte[] byteArray = Encoding.UTF8.GetBytes(xml);
request.ContentLength = byteArray.Length;
using (var dataStream = request.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();


using (WebResponse response = request.GetResponse())
{
using (var responseStream = response.GetResponseStream())
{
StreamReader reader =
new StreamReader(responseStream ?? throw new InvalidOperationException());
return reader.ReadToEnd();
}
}

}

编辑:

这是运行请求的跟踪输出:

System.Net Information: 0 : [11844] InitializeSecurityContext(In-Buffers count=2, Out-Buffer length=0, returned code=CertUnknown). System.Net Error: 0 : [11844] Exception in HttpWebRequest#63832831:: - The request was aborted: Could not create SSL/TLS secure channel.. System.Net Error: 0 : [11844] Exception in HttpWebRequest#63832831::EndGetRequestStream - The request was aborted: Could not create SSL/TLS secure channel..

我还更改了安全协议(protocol):

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 

第二次编辑:我可以让它在 SoapUI 中工作,但不能在 .NET 应用程序中工作,只需从 SOAP UI 中的文件系统加载 SSL 证书。

最佳答案

出于兴趣,您的应用程序正在使用 TLS 1.0、1.1 和 1.2 协议(protocol),但它是否在 Internet Explorer 中启用?

如果web.config中没有,就添加

<appSettings>
<add key="SecurityProtocol" value="Tls12" />
</appSettings>

然后还要在 IE 的高级设置选项卡中检查它是否已启用:“使用 TLS 1.2”

关于c# - 无法创建 SSL/TLS 安全通道。安全通道故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51288413/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com