2009-11-09 11 views
0

J'essaye d'envoyer un message à MSMQ en utilisant WCF. Je veux utiliser la sécurité du transport et signer des messages. Cependant, lorsque je définis les informations d'identification clientcertificate et que j'essaie d'envoyer un message, une erreur est émise: "Une erreur s'est produite lors de l'envoi à la file d'attente: Le certificat utilisateur est invalide. (-1072824276, 0xc00e002c)". Le certificat est stocké dans LocalMachine \ My location et dispose d'un accès en lecture seule pour le processus ASPNET.La certification client WCF n'est pas valide

Répondre

0

Voici deux raisons communes un certificat est considéré comme « invalide »:

  • Vous n'avez pas la clé privée associée au certificat. Si vous n'avez pas la clé privée, vous devez réinstaller le certificat avec la clé privée ou obtenir un nouveau certificat pour lequel vous avez la clé privée.

  • Le certificat est émis par une autorité de certification non approuvée par votre ordinateur. Si tel est le problème, vous devez installer le certificat de l'autorité émettrice dans votre magasin "Autorité de certification racine de confiance" (il y a des risques de sécurité liés à cette opération, assurez-vous de lire l'avertissement contextuel qui s'affiche ce).

Afficher le certificat dans le CertMgr.msc pour voir si c'est l'un de ces problèmes. (Démarrer> Exécuter> CertMgr.msc> Personnel> Certificats).

+0

Il est étrange car si j'installe un certificat dans le magasin de certificats de l'utilisateur actuel, puis que j'emprunte l'identité du processus ASP.NET pour utiliser le compte actuel, tout fonctionne correctement. – Sazug

+0

Il semble que le processus ASP.NET n'a pas accès en lecture au magasin de certificats racine et qu'il ne peut donc pas obtenir la clé privée. Voir la réponse à cette question sur l'octroi de l'accès ASP.NET au cert: http://stackoverflow.com/questions/1271497/asp-net-permissions-to-root-certificate-store – noctonura