2011-11-02 2 views
1

J'essaye d'écrire un client C# qui consomme un service Web. La communication est cryptée. J'ai téléchargé et installé le certificat des sites dans cet endroit magique où WinXP les garde.Échecs de validation de la stratégie de certificat de débogage: "Le certificat distant n'est pas valide selon la procédure de validation."

Lorsque j'exécute mon client, j'échoue avec "Le certificat distant est invalide selon la procédure de validation."

Lorsque j'exécute certmgr.msc, l'interface graphique m'informe que le certificat a une stratégie non valide. Le certificat a des dates valides et le chemin de certification est correct. Le certificat a une politique de certificat avec une politique identifient des entiers entrelacés avec des points (comme 1.2.30 ...)

En utilisant le code du X509Certificate2.Verify Method documentation, je peux voir que le message de vérification retourne en effet faux.

En essayant de recherche cette erreur, je trouve une référence dans Brian Komar's Windows Server 2008 PKI and Certificate Security:

validation des politiques. Si l'application qui appelle le moteur de chaînage de certificat attend une politique d'application spécifique ou des OID de certificat dans le certificat et que la politique ou les OID requis ne figurent pas dans les certificats de la chaîne CA, le moteur de chaînage de certificats considère le certificat invalide.

Je ne vois pas que je m'attends à une politique d'application spécifique. Je suis en cours de portage de ce code WSE3 à WCF alors peut-être qu'il est intégré po

Des conseils sur la façon de réduire encore plus? Y a-t-il vraiment un problème avec le certificat?

Si le certificat est correct, ai-je besoin de configurer ou d'étendre la classe CryptoConfig pour désactiver la vérification de la stratégie?

Toute aide a été appréciée.

Répondre

0

Vous pouvez toujours désactiver la validation en définissant ServicePointManager..::.ServerCertificateValidationCallback sur un délégué renvoyant true. Cela vous donnerait le temps de repérer tous les problèmes avec le certificat.

0

Une technique que j'ai utilisée pour suivre ces types d'erreurs est de visiter le Web Service dans un navigateur. Par exemple, si vous avez un service Web au https://server/foo.asmx, déposez cette adresse dans le navigateur de votre choix et vous obtiendrez une interprétation plus lisible de l'erreur.

Questions connexes