Meilleures pratiques pour l'utilisation de ServerCertificateValidationCallback

Je suis en train de travailler sur un projet qui utilise certains HTTP communication entre les deux serveurs back-end. Les serveurs sont à l'aide de certificats X509 pour l'authentification. Inutile de dire que, quand Un serveur (client) établit une connexion vers le serveur B (serveur), il y a un SSL/TLS erreur de validation, puisque les certificats utilisés ne sont pas de confiance 3ème partie de l'autorité.

Normalement, la façon de le gérer est à l'aide de ServicePointManager.ServerCertificateValidationCallbacktels que:

ServicePointManager.ServerCertificateValidationCallback += 
        (sender, cert, chain, error) =>
{
    return cert.GetCertHashString() == "xxxxxxxxxxxxxxxx";
};

Que l'approche fonctionne, sauf que c'est pas l'idéal. Ce qu'il fait essentiellement est de remplacer procédure de validation pour CHAQUE requête http effectué par l'application. Donc, si une autre classe essayez d'exécuter la requête HTTP, il échouera. Aussi, si une autre classe remplace ServicePointManager.ServerCertificateValidationCallback pour ses propres fins, puis ma communication commence à défaut d'un coup.

La seule solution qui me vient à l'esprit, est de créer un Domaine d'application client pour effectuer des requêtes HTTP. Qui serait à l'œuvre, mais, en réalité - c'est ridicule d'avoir à le faire qu'en sorte que l'on peut effectuer des requêtes HTTP. Les frais généraux sont ahurissants.

Avec cela à l'esprit, quelqu'un fait des recherches si il y a une meilleure pratique .NET, qui permettrait d'accéder aux services web, alors que la manipulation de client SSL/TLS validation sans affecter les autres clients web?

source d'informationauteur galets