我在 VS 2022 中使用 Xamarin,针对 Android 的 .NetStanderd2.1 类库。
我想实现一个带有自定义 SSL 证书验证的 HttpCient。
这是我的代码:
var httpClientHandler = new HttpClientHandler();
httpClientHandler.ServerCertificateCustomValidationCallback +=
(sender, cert, chain, sslPolicyErrors) =>
{
return true;
};
var httpClient = new HttpClient(httpClientHandler);
httpClient.BaseAddress = new Uri(baseUrl);
httpClient.Timeout = TimeSpan.FromSeconds(10);
HttpResponseMessage response =
await httpClient.GetAsync("api/status");
response.EnsureSuccessStatusCode();
(为易读性做了一些准备)。
我了解禁用 SSL 证书验证的安全隐患,这是在开发环境中使用自签名证书。
如果可能的话,我想使用 TLS 1.2,但接下来是这个问题。
当前的问题是,自定义 SSL 证书验证(返回 true;)在
httpClientHandler.ServerCertificateCustomValidationCallback +=
(sender, cert, chain, sslPolicyErrors) =>
{
return true;
};
永远不会被执行。
我究竟做错了什么?