Как сделать сертификат X.509?

Я пытаюсь сделать сертификат X.509. Я использую makecert.exe для этого. Я использую эту команду для создания своего сертификата X.509

 makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=MyServerCert -sky exchange –pe

Но я не знаю, где хранится сертификат X.509.
Мне нужно использовать этот сертификат X.509 в моем коде С#. Код:

  host.Credentials.ServiceCertificate.Certificate = new X509Certificate2("MyServerCert.p12", "password");

Но я не знаю, что такое пароль, и выдает это исключение «Система не может найти указанный файл».


person Vero009    schedule 25.09.2011    source источник


Ответы (2)


Я всегда использую инструмент SelfCert от PluralSight. Вы можете скачать его здесь. На тех же страницах также приведены примеры использования и кода.

Отличный бесплатный инструмент, без него не обойтись.

person kroonwijk    schedule 25.09.2011
comment
Ссылка не работает. pluralsight.com/blog/software-development/ может быть его новым местоположением. - person Theophilus; 16.03.2017

Хорошо, что вы нашли эту команду makecert, но, возможно, если бы вы также проверили документация makecert вы нашли, где хранится сертификат, поскольку он определен в параметрах вашей команды:

  • sr говорит, что сертификат будет сгенерирован для LocalMachine местоположения магазина
  • ss говорит, что сертификат будет храниться в хранилище Personal (My)

Сертификат хранится в хранилище сертификатов, поэтому используйте MMC.exe, чтобы найти его:

  • Открыть меню «Пуск»
  • В Поиск/Выполнить введите mmc и запустите его.
  • В меню «Файл» выберите «Добавить/удалить оснастку».
  • Выберите оснастку «Сертификаты» с областью действия «Локальный компьютер» и подтвердите выбор.

Теперь в личном хранилище для вашего LocalMachine выберите сертификат с именем MyServerCert и в контекстном меню выберите «Все задачи»> «Экспорт». Во время экспорта убедитесь, что вы хотите экспортировать закрытый ключ, но не проверяйте расширенную безопасность или удаление закрытого ключа. Вам также нужно будет выбрать путь, по которому будет храниться экспортированный сертификат, и пароль для доступа к закрытому ключу.

Из командной строки VS вы также можете запустить эту команду, которая также сделает экспорт за вас:

certutil.exe -privatekey -p password -exportpfx "MyServerCert" C:\Temp\MyServerCert.pfx 

Он должен экспортировать ваш сертификат с закрытым ключом во временный каталог, а пароль к сертификату будет password.

person Ladislav Mrnka    schedule 25.09.2011