首页 > 解决方案 > 无法在 Visual Studio 2019 for Mac OS (HttpClient) 上运行的 .net core 3.1 代码上建立 SSL 连接

问题描述

我知道这个问题之前在 Stackoverflow 上得到了回答,并且可能看起来重复,但在 Visual Studio 2019 for MacOS (BigSur) 上的 .net core 上下文中,没有一个答案对我有用。我有以下代码来实例化和连接,HttpClient同时绕过检查 SSL 证书:

                services.AddHttpClient<ISubmitter, Submitter>(httpClient => httpClient.BaseAddress = new Uri("https://192.168.86.150:4433"))
                .ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
                {
                    ClientCertificateOptions = ClientCertificateOption.Manual,
                    ServerCertificateCustomValidationCallback =
                    (httpRequestMessage, cert, cetChain, policyErrors) => true
                });

可用的 asp.net 核心应用程序在https://192.168.86.150:4433同一网络上的另一台机器上的 IIS Express 上运行,并且它的 Swagger 页面在 MacOS 机器上完美可见。我可以在 Swagger 页面上看到所有 API 的曝光,但是在 VS 2019 for Mac 上开发的客户端应用程序无法连接并引发以下异常:

信息 - 类别:System.Net.Http.HttpClient.ISubmitter.LogicalHandler :开始处理 HTTP 请求 POST https://192.168.86.150:4433/api/gateway/submit :: 12/19/2020 09:48:09 信息 -类别: System.Net.Http.HttpClient.ISubmitter.ClientHandler :发送 HTTP 请求 POST https://192.168.86.150:4433/api/gateway/submit :: 12/19/2020 09:48:09 System.Net.Http .HttpRequestException :无法建立 SSL 连接,请参阅内部异常。---- System.IO.IOException:由于意外的数据包格式,握手失败。结果消息:System.Net.Http.HttpRequestException:无法建立 SSL 连接,请参阅内部异常。---- System.IO.IOException : 由于意外的数据包格式,握手失败。

我也尝试过使用ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator,但这也没有成功!我花了 3-4 天时间来解决这个问题,但没有运气。有什么办法可以绕过 MacOS 上客户端代码的证书验证?!

标签: c#.net-coredotnet-httpclientasp.net-core-3.1

解决方案


推荐阅读