Autoriser tous les certificats est très puissant, mais cela peut aussi être dangereux. Si vous souhaitez n'autoriser que les certificats valides et certains certificats particuliers, vous pouvez procéder comme suit.
.Net core :
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;
}
}
Cadre .Net :
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;
};
Mise à jour :
Comment obtenir cert.GetCertHashString()
dans Chrome :
Cliquez sur Secure
o Not Secure
dans la barre d'adresse.
Cliquez ensuite sur Certificat -> Détails -> Empreinte et copiez la valeur. N'oubliez pas de faire cert.GetCertHashString().ToLower()
.