2010-04-01 5 views
1

Je développe un service WCF sur mon ordinateur local en utilisant Visual Studios construit en serveur de développement ASP.NET et j'ai des problèmes pour créer et utiliser des certificats temporaires.WCF Certificate issue

J'ai créé un appel certCA TempCA et l'a ajouté au dossier Trusted Root Certificate et j'en ai créé un autre appelé SignedByCA qui a été ajouté au dossier personnel.

Le fichier de configuration de service a été configuré pour utiliser SignedByCA mais lorsque j'exécute le service, j'obtiens l'erreur suivante.

Le certificat 'CN = SignedByCA' doit avoir une clé privée capable d'échanger des clés. Le processus doit avoir des droits d'accès pour la clé privée.

J'ai essayé d'utiliser WinHttpCertCfg.exe pour permettre à d'autres utilisateurs d'accéder à la clé, mais j'ai découvert depuis que WinHttpCertCfg.exe est obsolète dans Windows Vista.

Quelqu'un at-il eu ce problème avant dans une circonstance similaire?

Répondre

0

Essayez certmgr. Mais je suppose que vous avez utilisé le makecert pour générer le certificat, vous n'avez pas besoin d'utiliser WinHttpCertCfg pour l'installer. Il devrait être installé automatiquement.

En outre, si vous hébergez le service dans IIS, la clé privée est normalement générée dans

C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys 

Vous pouvez accorder lecture seule sécurité des MachineKeys pour l'utilisateur « NETWORK SERVICE » (utilisateur IIS6).

+0

Désolé d'être une douleur mais comme je l'ai dit avant que je n'utilise pas IIS pour exécuter mon service, je l'exécute simplement en utilisant le Visual Studio Development Server qui fonctionne quand vous frappez – Morgeh

+0

je pense que c'est similaire, au lieu de à l'utilisateur "SERVICE RÉSEAU", essayez temporairement d'accorder "EVERYONE" en lecture seule et voyez si vous pouvez exécuter le débogage. Vous ne voudrez pas le faire en production bien sûr pour des raisons de sécurité. – K2so

+0

J'ai l'impression d'être en train de tourner en rond, après une réinitialisation de mon système, le service Web ne peut plus trouver de certificats. Je reçois constamment "Impossible de trouver le certificat X.509 en utilisant les critères de recherche suivants: StoreName 'AuthRoot', StoreLocation 'CurrentUser', FindType 'FindBySubjectName', FindValue 'CN = SignedByTemp'." – Morgeh