2010-04-01 18 views
3

Je crée un certificat à utiliser avec un SslStream, et je l'ai fait ainsi sous XP:problème Makecert sous Windows 7

makecert -r -pe -n "CN=aName" -ss my -sr localmachine -sky exchange 
    -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 server.cer 

Si je comprends bien, cela crée un certificat server.cer et crée une clé privée dans mon magasin de certificats personnel. Une fois que je l'ai fait, je peux créer un objet de certificat comme celui-ci:

X509Certificate.CreateFromCertFile(certFile); 

J'utilise ensuite avec le SslStream, et tout fonctionne bien.

Maintenant que je suis passé à Windows 7, la clé privée semble disparaître chaque fois que je redémarre la machine. J'exécute une invite de commande en tant qu'Administrateur, et j'exécute la même commande makecert que celle montrée ci-dessus. Cela réussit et la connexion SSL fonctionne correctement. Si je redémarre la machine, l'appel à AuthenticateAsServer échoue avec l'exception "Le mode SSL du serveur doit utiliser un certificat avec la clé privée associée".

Pourquoi la clé privée disparaît-elle? Que dois-je faire pour le faire rester?

+0

J'ai ce problème exact en ce moment, très déçu qu'il n'y ait pas de réponse ici! :) – EJA

Répondre

1

Êtes-vous le même utilisateur dans tous les cas? Lorsque vous dites "Exécuter en tant qu'administrateur", je pense que vous pouvez être amené à associer la clé privée à un utilisateur différent, ou peut-être que le fichier de clé privée n'a pas les autorisations appropriées. Si c'est un problème d'autorisations, ou si vous n'êtes pas sûr que la clé disparaisse, utilisez l'outil FindPrivateKey: http://msdn.microsoft.com/en-us/library/ms732026.aspx Je pense que cela fait partie des outils Server2003, mais ça marche bien sur les habituels XP. Donc j'espère que ça fonctionnera aussi sur Windows7. Je ne suis pas à ma machine Win7 maintenant.