Asp.net core System.Net.Http.HttpRequestException:无法建立SSL连接,请参阅内部异常

Asp.net core System.Net.Http.HttpRequestException:无法建立SSL连接,请参阅内部异常,asp.net-core,httpclient,servicepointmanager,Asp.net Core,Httpclient,Servicepointmanager,我使用的是ASP.NET Core 2.2,其中我使用的是来自非安全门户的安全API(例如)。 但我在请求API时遇到以下错误: System.Net.Http.HttpRequestException:无法建立SSL连接,请参阅内部异常 我已经尝试了ServerCertificateCustomValidationCallback,ServerCertificateCustomValidationCallback,ServicePointManager.SecurityProtocol等,但没

我使用的是ASP.NET Core 2.2,其中我使用的是来自非安全门户的安全API(例如)。 但我在请求API时遇到以下错误:

System.Net.Http.HttpRequestException:无法建立SSL连接,请参阅内部异常

我已经尝试了
ServerCertificateCustomValidationCallback
ServerCertificateCustomValidationCallback
ServicePointManager.SecurityProtocol
等,但没有成功

当我使用
ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3,然后我得到一个错误:

System.NotSupportedException:不支持请求的安全协议“

我已经尝试过的示例代码::

一,

二,

三,


异常消息要求您查看InnerException。您尝试过吗?什么内部?(建议内部根本原因)错误与SSL有关。错误为::System.IO.IOException:由于意外的数据包格式,握手失败。位于System.Net.Security.SslState.StartReadFrame(字节[]在System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)处的缓冲区、Int32 readBytes、AsyncProtocolRequest asyncRequest(asyncRequest asyncRequest)——从引发异常的上一个位置开始的堆栈结束跟踪——在System.Net.Security.SslState.ThrowifeException()处位于System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult-lazyResult)解决方案::ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;在windows中工作,但在ubuntu中不工作。您有没有设法解决过这个问题?我也有同样的问题。我尝试了所有我能找到的方法,但都没有效果。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls   |
                                       SecurityProtocolType.Tls11 |
                                       SecurityProtocolType.Tls12 | 
                                       SecurityProtocolType.Ssl3;
using (var httpClientHandler = new HttpClientHandler())
{
    httpClientHandler.ServerCertificateCustomValidationCallback =
        (message, cert, chain, errors) => { return true; };
    using (var client = new HttpClient(httpClientHandler))
    { // somecode }
}
var handler = new HttpClientHandler
{
    ServerCertificateCustomValidationCallback =
        (httpRequestMessage, cert, cetChain, policyErrors) =>
        {
            return true;
        },
        SslProtocols = SslProtocols.Tls12   |
                       SslProtocols.Tls11   |
                       SslProtocols.Tls     |
                       SslProtocols.Ssl3    |
                       SslProtocols.Ssl2    |
                       SslProtocols.Default |
                       SslProtocols.None
};