You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework 4.7.2 Web API在IIS中mTLS请求失败:无法创建SSL/TLS安全通道

.NET Framework 4.7.2 Web API在IIS中调用mTLS第三方API失败

我有一个运行在IIS中的.NET Framework 4.7.2 ASP.NET Web API,尝试与要求客户端证书进行mTLS的第三方API交互。发送初始登录请求时出现错误:The request was aborted: Could not create SSL/TLS secure channel.,该异常无详细原因及内部异常。

仅当API运行在Windows 2022服务器(AWS EC2)的IIS中时才会报错,本地测试正常;将API代码复制到控制台程序并在同一服务器运行也无错误。

证书加载代码

using (var s3Client = new AmazonS3Client())
{
    var response = s3Client.GetObject(bucket, key);

    using (response.ResponseStream)
    using (var file = new MemoryStream())
    {
        response.ResponseStream.CopyTo(file);
        cert = new X509Certificate2(file.ToArray(), certPassword);
    }
}

证书使用代码

var httpClientHandler = new HttpClientHandler();
httpClientHandler.ClientCertificates.Add(cert);

_httpClient = new HttpClient(httpClientHandler)
{
    BaseAddress = _config.BaseUri
};

抓包情况

通过Wireshark观察,会话直接中断:

  • 成功场景(控制台程序):成功抓包截图
  • 失败场景(ASP.NET Web API 2):失败抓包截图

已尝试的无效方案

  • 添加所有与Windows启用TLSv1.2相关的注册表项
  • 在代码中添加ServicePointManager.SecurityProtocol = SecurityProtocolType.tls12
  • 在代码中添加ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true
  • 确保Web.config中httpRuntime设置为4.7.2

所有尝试均无效,Wireshark显示已使用TLSv1.2。

内容的提问来源于stack exchange,提问作者Tanner King

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:45:08