Permitir todos los certificados es muy poderoso, pero también podría ser peligroso. Si desea permitir solo certificados válidos más algunos certificados determinados, podría hacerlo de esta manera.
Núcleo .Net:
using (var httpClientHandler = new HttpClientHandler())
{
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) => {
if (sslPolicyErrors == SslPolicyErrors.None)
{
return true; //Is valid
}
if (cert.GetCertHashString() == "99E92D8447AEF30483B1D7527812C9B7B3A915A7")
{
return true;
}
return false;
};
using (var httpClient = new HttpClient(httpClientHandler))
{
var httpResponse = httpClient.GetAsync("https://example.com").Result;
}
}
.NET Framework:
System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate (
object sender,
X509Certificate cert,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
if (sslPolicyErrors == SslPolicyErrors.None)
{
return true; //Is valid
}
if (cert.GetCertHashString() == "99E92D8447AEF30483B1D7527812C9B7B3A915A7")
{
return true;
}
return false;
};
Actualizar:
Cómo obtener cert.GetCertHashString()
valor en Chrome:
Haga clic en Secure
o Not Secure
en la barra de direcciones.
Luego haga clic en Certificado -> Detalles -> Huella digital y copie el valor. Recuerda hacer cert.GetCertHashString().ToLower()
.