Makecert.exe (средство создания сертификатов)
Инструмент для создания сертификатов генерирует сертификаты X.509, предназначенные исключительно для тестирования. Этот инструмент создает пару из открытого и закрытого ключей для цифровой подписи и помещает ее в файл сертификата. Он также привязывает пару ключей к указанному имени издателя и создает сертификат X.509, который связывает заданное пользователем имя с открытым ключом пары.
Параметры Makecert.exe разделяются на основные и дополнительные. Основные параметры используются при создании сертификатов чаще всего. Дополнительные параметры придают программе гибкость.
Закрытые ключи сертификатов, генерируемые данным инструментом, не предназначены для хранения в SNK-файлах. Если необходимо хранить закрытый ключ, следует использовать для этого контейнер ключа. Дополнительные сведения о хранении закрытого ключа в контейнере ключей см. в разделе Практическое руководство. Хранение асимметричных ключей в контейнере ключей.
Примечание
Для безопасного хранения сертификатов следует использовать хранилища сертификатов.В SNK-файлах, используемых данным инструментом, закрытые ключи хранятся без должной защиты.При создании или импорте SNK-файла необходимо обеспечить его безопасность на время использования и удалить по окончании процедуры.
Это средство устанавливается автоматически с Visual Studio и пакетом SDK Windows. Чтобы запустить инструмент, мы рекомендуем использовать командную строку Visual Studio или командную строку пакета Windows SDK (командную оболочку). Эти служебные программы позволяют легко работать с инструментом, не переходя к папке установки. Дополнительные сведения см. в разделе Командная строка Visual Studio и пакета Windows SDK.
Если на компьютере установлена среда Visual Studio: на панели задач последовательно щелкните Start, All Programs, Visual Studio, Visual Studio Tools и Visual Studio Command Prompt.
– или –
Если на компьютере установлен пакет Windows SDK: на панели задач щелкните Start, выберите All Programs и откройте папку с пакетом Windows SDK, затем щелкните Command Prompt (или CMD Shell).
В командной строке введите следующее:
makecert [options] outputCertificateFile
Аргумент |
Описание |
---|---|
создаваемый_файл_сертификата |
Имя файла с расширением .cer, в который будет записан тестовый сертификат X.509. |
Основные параметры
Параметр |
Описание |
---|---|
-n имя |
Задает имя сертификата субъекта. Имя должно соответствовать стандарту X.500. Проще всего заключить имя в двойные кавычки и поставить перед ним префикс CN=; например, -n "CN=myName". |
-pe |
Помечает созданный закрытый ключ как экспортируемый. Это позволит включить закрытый ключ в сертификат. |
-sk имя_ключа |
Задает местонахождение контейнера ключей субъекта, содержащего закрытый ключ. Если контейнер не существует, он будет создан. |
-sr расположение |
Задает местонахождение хранилища сертификатов субъекта. Расположение может быть либо currentuser (значение по умолчанию), либо localmachine. |
-ss хранилище |
Задает имя хранилища сертификатов субъекта, в котором будет храниться созданный сертификат. |
-# число |
Задает серийный номер от 1 до 2 147 483 647. Значение по умолчанию – это уникальное значение, сформированное программой Makecert.exe. |
-$ центр |
Задает заверителя подписи сертификата. Этот параметр может принимать два значения: commercial (для сертификатов, используемых коммерческими издателями программного обеспечения) или individual (для сертификатов, используемых индивидуальными издателями ПО). |
-? |
Выводит синтаксис команд и список основных параметров для этого инструмента. |
-! |
Выводит синтаксис команд и список дополнительных параметров для этого инструмента. |
Дополнительные параметры
Параметр |
Описание |
---|---|
-a алгоритм |
Задает алгоритм подписи. алгоритм должен представлять собой md5, sha1 (по умолчанию), sha256, sha384 или sha512. |
-b мм/дд/гггг |
Задает начало срока действия сертификата. По умолчанию используется текущая дата. |
-crl |
Формирует список отзыва сертификатов (CRL) вместо сертификата. |
-cy тип_сертификата |
Задает тип сертификата. Допустимые значения: end (для конечного субъекта) и authority (для заверителя сертификата). |
-e мм/дд/гггг |
Задает конец срока действия сертификата. По умолчанию установлено значение 12/31/2039 11:59:59 GMT. |
-eku oid[,oid…] |
Вставляет в сертификат список разделенных запятыми идентификаторов объектов (OID) использования расширенного ключа. |
-h число |
Задает максимальное число уровней дерева, исходящего из данного сертификата. |
-ic файл |
Задает файл сертификата поставщика. |
-ik имя_ключа |
Задает имя контейнера ключей поставщика. |
-iky тип_ключа |
Определяет тип ключа эмитента, который должен быть одним из следующих: signature (что означает, что этот ключ используется для цифровой подписи), exchange (что означает, что этот ключ используется для шифрования и обмена ключами,) или целое число, представляющее тип поставщика. По умолчанию можно указать 1 для ключа обмена или 2 для ключа сигнатуры. |
-in имя |
Задает общее имя сертификата поставщика. |
-ip поставщик |
Задает имя поставщика CryptoAPI для поставщика сертификата. Сведения об имени поставщика CryptoAPI см. в описании параметра –sp. |
-ir расположение |
Задает местонахождение хранилища сертификатов поставщика. Расположение может быть либо currentuser (значение по умолчанию), либо localmachine. |
-is хранилище |
Задает имя хранилища сертификатов поставщика. |
-iv файл_pvk |
Задает PVK-файл закрытого ключа поставщика. |
-iy тип |
Задает тип поставщика CryptoAPI для поставщика сертификата. Сведения о типе поставщика CryptoAPI см. в описании параметра –sy. |
-l ссылка |
Ссылка на политику (например, на URL-адрес). |
-len число |
Задает длину создаваемого ключа в битах. |
-m число |
Задает срок действия сертификата в месяцах. |
-nscp |
Включает расширение авторизации клиента Netscape. |
-r |
Создает самозаверяющий сертификат. |
-sc файл |
Задает файл сертификата субъекта. |
-sky тип_ключа |
Определяет тип ключа субъекта, который должен быть одним из следующих: signature (что означает, что этот ключ используется для цифровой подписи), exchange (что означает, что этот ключ используется для шифрования и обмена ключами,) или целое число, представляющее тип поставщика. По умолчанию можно указать 1 для ключа обмена или 2 для ключа сигнатуры. |
-sp поставщик |
Задает имя поставщика CryptoAPI субъекта, который должен быть определен в подразделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider. Если присутствуют –sp и –sy, тип поставщика CryptoAPI должен соответствовать значению Type подраздела поставщика. |
-sv файл_pvk |
Задает PVK-файл закрытого ключа субъекта. Если файл не существует, он будет создан. |
-sy тип |
Задает имя поставщика CryptoAPI субъекта, который должен быть определен в подразделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types. Если присутствуют –sy и –sp, имя поставщика CryptoAPI должно соответствовать значению Name подраздела типа поставщика. |
-tbs |
Задает сертификат или файл списка отзыва сертификатов для подписания. |
Примеры
Следующая команда создает тестовый сертификат, выданный тестовым корневым центром по умолчанию, и записывает его в файл testCert.cer.
makecert testCert.cer
Следующая команда создает сертификат, выданный тестовым корневым центром по умолчанию, и сохраняет его в хранилище сертификатов.
makecert -ss testCertStore
Следующая команда создает сертификат, выданный тестовым корневым центром по умолчанию, и сохраняет его в хранилище сертификатов. Сертификат явным образом помещается в хранилище currentuser.
makecert -ss testCertStore -sr currentuser
Следующая команда создает тестовый сертификат и записывает его в файл textXYZ.cer, используя указанный контейнер ключей субъекта и имя его сертификата, соответствующее стандарту X.500.
makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer
Следующая команда создает сертификат, выданный тестовым корневым центром по умолчанию, создает PVK-файл и записывает сертификат в хранилище и в этот файл.
makecert -sv testCert.pvk -ss testCertStore testCert.cer
Следующая команда создает сертификат, выданный тестовым корневым центром по умолчанию, создает контейнер ключей и записывает сертификат в хранилище и в этот файл.
makecert -sk myTestKey -ss testCertStore testCert.cer
Следующая команда создает самозаверяющий сертификат, задает имя субъекта "CN=XYZ Company", задает начало и окончание срока действия, помещает ключ в хранилище my, задает ключ обмена и помечает закрытый ключ как экспортируемый.
makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my
Следующая команда создает самозаверяющий сертификат, который может использоваться для тестирования веб-приложения, которое использует протокол SSL (Secure Sockets Layer) на веб-сервере, URL-адрес которого является www.example.com. OID, определяемый параметром –eku, идентифицирует этот сертификат как сертификат сервера SSL. Сертификат хранится в хранилище my и доступен на уровне компьютера (а не пользователя). Закрытый ключ сертификата можно экспортировать и сертификат действителен с 10 мая 2010 до 22 декабря 2011 года.
Makecert –r –pe –n CN="www.example.com" –b 05/10/2010 –e 12/22/2011 –eku 1.3.6.1.5.5.7.3.1 –ss my –sr localmachine -sky exchange –sp "Microsoft RSA SChannel Cryptographic Provider" –sy 12
Следующие команды создают сертификаты и помещают их в хранилища. Первая команда создает сертификат, используя тестовый корневой центр по умолчанию, и сохраняет сертификат в хранилище. Вторая команда создает еще один сертификат, используя только что созданный сертификат, и сохраняет второй сертификат в другом хранилище.
makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore
Следующие команды создают сертификаты и помещают их в хранилища. Первая команда сохраняет сертификат в хранилище my. Вторая команда создает еще один сертификат, используя только что созданный сертификат. Поскольку в хранилище my имеется более одного сертификата, вторая команда идентифицирует первый сертификат с помощью его общего имени.
makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore
Следующие команды создают сертификаты и записывают их в файлы и хранилища. Первая команда создает сертификат, используя тестовый корневой центр по умолчанию, и сохраняет его в хранилище my и в файле. Вторая команда создает еще один сертификат, используя только что созданный сертификат testCert.cer. Поскольку в хранилище my содержится более одного сертификата, вторая команда однозначно идентифицирует первый сертификат с помощью имени файла сертификата.
makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore
См. также
Ссылки
Cert2spc.exe (средство проверки сертификата издателя программного обеспечения)
Командная строка Visual Studio и пакета Windows SDK
Другие ресурсы
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Апрель 2011 |
Добавлены сведения об использовании командных строк Visual Studio и Windows SDK. |
Улучшение информации. |
Май 2010 |
Значительно пересмотрено. |
Обратная связь от клиента. |