Проблема Makecert под Windows 7 - PullRequest
       19

Проблема Makecert под Windows 7

3 голосов
/ 01 апреля 2010

Я создаю сертификат для использования с SslStream, и я делал это таким образом под XP:

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

Если я правильно понимаю, это создает сертификат в server.cer и создает личный ключ для него в моем личном хранилище сертификатов. Сделав это, я могу создать объект сертификата следующим образом:

X509Certificate.CreateFromCertFile(certFile);

Затем я использую его с SSLStream, и все работает нормально.

Теперь, когда я переключился на Windows 7, закрытый ключ, кажется, исчезает каждый раз, когда я перезагружаю машину. Я запускаю командную строку от имени администратора и выполняю ту же команду makecert, показанную выше. Это успешно, и соединение SSL работает правильно. Если я перезагружаю компьютер, происходит сбой вызова AuthenticateAsServer с исключением: «В режиме сервера SSL должен использоваться сертификат с соответствующим закрытым ключом».

Почему закрытый ключ исчезает? Что мне нужно сделать, чтобы заставить его держаться?

1 Ответ

1 голос
/ 01 апреля 2010

Вы один и тот же пользователь во всех случаях? Когда вы говорите «запускать от имени администратора», я думаю, что вы, возможно, заставляете его связывать закрытый ключ с другим пользователем, или, возможно, файл закрытого ключа не имеет надлежащих разрешений. Если это проблема с разрешениями, или если вы не уверены, что ключ исчезает, используйте инструмент FindPrivateKey: http://msdn.microsoft.com/en-us/library/ms732026.aspx Я думаю, что это часть инструментов Server2003, но он отлично работает на обычной XP. Надеюсь, он будет работать и на Windows7. Сейчас я не на своей машине с Win7.

...