使用 HttpClientHandler
,我们能够设置服务器验证回调并返回 true(通过编写或使用 DangerousAcceptAnyServerCertificateValidator
)。当我将我的 HttpClient
切换到使用 SocketsHttpHandler
并升级到 .NET Core 2.2 后,如何确保我也可以绕过此验证?这是默认行为吗?目前我找不到关于此主题的太多信息,并且我将部署到一个环境中,我想避免进行破坏性更改。
使用 HttpClientHandler
,我们能够设置服务器验证回调并返回 true(通过编写或使用 DangerousAcceptAnyServerCertificateValidator
)。当我将我的 HttpClient
切换到使用 SocketsHttpHandler
并升级到 .NET Core 2.2 后,如何确保我也可以绕过此验证?这是默认行为吗?目前我找不到关于此主题的太多信息,并且我将部署到一个环境中,我想避免进行破坏性更改。
@djsoteric我也遇到了完全相同的问题,我是这样解决的
public static HttpClient CreateHttpClient()
{
var sslOptions = new SslClientAuthenticationOptions
{
// Leave certs unvalidated for debugging
RemoteCertificateValidationCallback = delegate { return true; },
};
var handler = new SocketsHttpHandler()
{
SslOptions = sslOptions,
};
return new HttpClient(handler);
}