J'utilise le code suivant pour m'assurer que tous les certificats sont valides, même ceux qui ne sont pas valides, mais je voudrais savoir s'il existe un meilleur moyen, L'événement est appelé globalement et je veux seulement que le certificat passe pour un certain appel HTTP et pas pour d'autres qui se passent de manière asynchrone.Quelle est la meilleure façon de gérer les certificats SSL non valides en C#
// This delegate makes sure that non-validating SSL certificates are passed
ServicePointManager.ServerCertificateValidationCallback = delegate(object certsender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
};
Le code ci-dessus est juste un exemple d'ignorer toute non-validation sur le certificat. Le problème que j'ai, c'est que c'est un événement global. Je ne peux pas voir à quelle session l'événement se passe. Je pourrais avoir un couple de demandes http en cours et je veux demander à l'utilisateur pour une action pour chaque demande.
Cela ne va-t-il pas à l'encontre de l'objectif de sécuriser vos communications avec TLS/SSL? – Alexander
Non - il vous ouvre juste dans les attaques de Man In the Middle (MITM) - vous obtenez toujours le cryptage sur le fil (qui, à mon humble avis est le plus important de toute façon). –
Je pense que je devrais mieux expliquer ma question un peu plus - éditera ... –