Magazine Internet

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

Publié le 28 mars 2015 par Jeremy.jeanson

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


Retour à La Une de Logo Paperblog

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossiers Paperblog