Skip to main content

Implémenter sa propre logique de validation de certificats de services

De base, la politique de validation utilisée dans .net fait bien son travail. Elle nous prémunit de toute mauvaise utilisation d'un certificat (objet non valide, certificat d'une autorité non reconnue … etc…)

Dans certains cas, vous pouvez vouloir ajouter des règles ou en supprimer. Pour arriver à vos fins, il suffit de modifier la propriété ServerCertificateValidationCallback de l'objet ServicePointManager. Cette propriété attend une fonction aux multiples arguments, qui doit retourner un Boolean à True quand on accepte un certificat. Les arguments nous permettent de savoir quel certificat est à valider ainsi que son contenu.

Ceci est utilisable avec toute technologie .net qui exploite un certificat : WCF, ASMX, Workflow foundation… etc.

Par exemple, si on veut accepter tout type de certificat comme les certificats auto signés, on peut utiliser le code suivant.

// Faire confiance au certificat quoi qu'il arrive et d'où qu'il vienne !!! 
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => 
{
    return true;
};

Note : Code tellement moche et dangereux, qu'il ne faut pas utiliser en production ;)

Plus d'informations sont disponibles via la MSDN https://msdn.microsoft.com/fr-fr/library/vstudio/system.net.security.remotecertificatevalidationcallback(v=vs.100).aspx

Jérémy Jeanson

Comments

You have to be logged in to comment this post.

Cookies Cookie Policy

This website uses cookies to allow us to enhance your browsing experience (accessibility settings). If you continue to use this website you agree to our use of cookies.