2008-10-24 6 views
9

Пусть говорят, что я запустить эту команду:Где makecert хранит закрытый ключ, если -sv не указан?

makecert testcert.cer 

создан закрытый ключ? Если да, то где он автоматически сохраняется в системе, хотя я не сказал makecert установить этот сертификат в любом хранилище сертификатов?

ответ

2

Похоже, что закрытый ключ хранится в самом файле. Из документации по адресу http://msdn.microsoft.com/en-us/library/bfsktky3(VS.80).aspx ...

Внимание
Для надежного хранения сертификатов вы должны использовать хранилище сертификатов. Файлы .snk, используемые этим инструментом, хранят конфиденциальные ключи незащищенным образом. Когда вы создаете или импортируете файл .snk, вы должны быть осторожны, чтобы защитить его во время использования и удалить его, когда закончите.

0

Закрытый ключ не создан, потому что для параметра HasPrivateKey для X509Certificate2 установлено значение false при загрузке сертификата в .NET.

4

То, как вы запускаете commnand, не создает никакого закрытого ключа. Чтобы создать сертификат с закрытым ключом, вы должны использовать опцию -pe. Но это не так. Закрытый ключ будет создан только в том случае, если ваше место назначения сертификата является хранилищем. Таким образом, вы должны будете использовать команду:

MakeCert -pe -ss Мой testcert.cer

«мой» соответствует «личного» магазина.

+0

Да, это правда. Также обратите внимание, что makecert.exe не говорит вам, что он не собирается вставлять закрытый ключ в сертификат. Он просто создает его на диске без закрытого ключа. Поэтому вы можете использовать опции '-pe -ss My' для создания в хранилище, а затем экспортировать его на диск. –