繁体   English   中英

TLS 1.2 - 警报级别 - 致命 - 描述协议版本

[英]TLS 1.2 - Alert Level - Fatal - Description Protocol Version

我正在尝试连接到 web 服务,该服务在 TLS 1.2 版上使用双向身份验证。 SSL 握手失败,当我在wireshark 上嗅探数据包时出现以下握手错误。 (我的客户端通过发送“RST,ACK”来终止握手):

在此处输入图像描述

在此处输入图像描述

我还在 windows 事件查看器上收到以下 SCHANNEL 错误日志:

已生成致命警报并将其发送到远程端点。 这可能会导致连接终止。 TLS 协议定义的致命警报代码为 10。

目标名称:

TLS 警报注册表位于http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-6

这是什么意思? 我该怎么办? 这是我的 c# 代码:

var cert = new X509Certificate2(PfxBytes);

using (var handler = new HttpClientHandler())
{
    handler.ClientCertificateOptions = ClientCertificateOption.Manual;
    handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true;
    handler.ClientCertificates.Add(cert);
    handler.SslProtocols = SslProtocols.Tls12;

    using (var client = new HttpClient(handler, false))
    {
    var postData = new StringContent("", UnicodeEncoding.UTF8, "application/json");
    var response = await client.PostAsync("<URL>", postData);

    string responseString = await response.Content.ReadAsStringAsync();
    Console.WriteLine(responseString);
    }
}

令人惊讶的是,这在具有相同证书的 postman 上运行良好。 所以我很确定证书没有问题。 无法弄清楚我的 c# 代码出了什么问题。

请帮忙。

我的理解是 TLS 协议版本不匹配。 客户端似乎向服务器建议了不受支持的 TLS 版本。 确保服务器和客户端可以使用相同版本的 TLS 协议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM