在 .NET Core 2.2 中使用 SocketsHttpHandler 并忽略证书验证
Using SocketsHttpHandler in .NET Core 2.2 and ignoring cert validation
使用 HttpClientHandler
,我们可以设置服务器验证回调和 return true(通过写出来或使用 DangerousAcceptAnyServerCertificateValidator
)。在升级到 .NET Core 2.2 后将 HttpClient
切换为使用 SocketsHttpHandler
时,如何确保也绕过此验证?这是默认值吗?我目前找不到关于此主题的太多信息,我将部署到一个我想避免进行重大更改的环境。
@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);
}
使用 HttpClientHandler
,我们可以设置服务器验证回调和 return true(通过写出来或使用 DangerousAcceptAnyServerCertificateValidator
)。在升级到 .NET Core 2.2 后将 HttpClient
切换为使用 SocketsHttpHandler
时,如何确保也绕过此验证?这是默认值吗?我目前找不到关于此主题的太多信息,我将部署到一个我想避免进行重大更改的环境。
@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);
}