Поделиться через


Средство создания сертификатов (Makecert.exe)

Обновлен: Ноябрь 2007

Инструмент для создания сертификатов генерирует сертификаты X.509, предназначенные исключительно для тестирования. Этот инструмент создает пару из открытого и закрытого ключей для цифровой подписи и помещает ее в файл сертификата. Он также привязывает пару ключей к указанному имени издателя и создает сертификат X.509, который связывает заданное пользователем имя с открытым ключом пары.

Параметры Makecert.exe разделяются на основные и дополнительные. Основные параметры используются при создании сертификатов чаще всего. Дополнительные параметры придают программе гибкость.

Закрытые ключи сертификатов, генерируемые данным инструментом, не предназначены для хранения в SNK-файлах. Если необходимо хранить закрытый ключ, следует использовать для этого контейнер ключа. Дополнительные сведения о хранении закрытого ключа в контейнере ключа см. в разделе Практическое руководство. Хранение асимметричных ключей в контейнере ключей.

bfsktky3.alert_caution(ru-ru,VS.90).gifВнимание!

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

makecert [options] outputCertificateFile

Аргумент

Описание

создаваемый_файл_сертификата

Имя файла с расширением .cer, в который будет записан тестовый сертификат X.509.

Основные параметры

Параметр

Описание

-n имя_x509

Задает имя сертификата субъекта. Имя должно соответствовать стандарту X.500. Проще всего заключить имя в двойные кавычки и поставить перед ним префикс CN=; например, "CN=myName".

-pe

Помечает созданный закрытый ключ как экспортируемый. Это позволит включить закрытый ключ в сертификат.

-sk имя_ключа

Задает местонахождение контейнера ключей субъекта, содержащего закрытый ключ. Если контейнер не существует, он будет создан.

-sr расположение

Задает местонахождение хранилища сертификатов субъекта. В качестве аргумента расположение можно указать currentuser (по умолчанию)или localmachine.

-ss хранилище

Задает имя хранилища сертификатов субъекта, в котором будет храниться созданный сертификат.

-# число

Задает порядковый номер в диапазоне от 1 до 2 147 483 647. Значением по умолчанию является уникальное значение, генерируемое программой Makecert.exe.

-$ заверитель

Задает заверителя подписи сертификата. Этот параметр может принимать два значения: commercial (для сертификатов, используемых коммерческими издателями программного обеспечения) или individual (для сертификатов, используемых индивидуальными издателями ПО).

-?

Выводит синтаксис команд и список основных параметров для этого инструмента.

-!

Выводит синтаксис команд и список дополнительных параметров для этого инструмента.

Дополнительные параметры

Параметр

Описание

-a алгоритм

Задает алгоритм подписи. Необходимо указать md5 (по умолчанию) или sha1.

-b мм/дд/гггг

Задает начало срока действия сертификата. По умолчанию начало срока действия совпадает с датой создания сертификата.

-cy тип_сертификата

Задает тип сертификата. Допустимые значения: end (для конечного субъекта) и authority (для заверителя сертификата).

-d имя

Выводит имя субъекта.

-e мм/дд/гггг

Задает конец срока действия сертификата. По умолчанию установлено значение 12/31/2039 11:59:59 GMT.

-eku oid[,oid]

Вставляет в сертификат список разделенных запятыми идентификаторов объектов (OID) использования расширенного ключа.

-h число

Задает максимальное число уровней дерева, исходящего из данного сертификата.

-ic файл

Задает файл сертификата поставщика.

-ik имя_ключа

Задает имя контейнера ключей поставщика.

-iky тип_ключа

Задает тип ключа поставщика: signature, exchange или целое число, обозначающее тип поставщика. По умолчанию можно указать 1 в качестве ключа обмена и 2 в качестве ключа подписи.

-in имя

Задает общее имя сертификата поставщика.

-ip поставщик

Задает имя поставщика CryptoAPI для поставщика сертификата.

-ir расположение

Задает местонахождение хранилища сертификатов поставщика. В качестве аргумента расположение можно указать currentuser (по умолчанию) или localmachine.

-is хранилище

Задает имя хранилища сертификатов поставщика.

-iv файл_pvk

Задает PVK-файл закрытого ключа поставщика.

-iy файл_pvk

Задает тип поставщика CryptoAPI для поставщика сертификата.

-l ссылка

Ссылка на политику (например, URL-адрес).

-m число

Задает срок действия сертификата в месяцах.

-nscp

Включает расширение авторизации клиента Netscape.

-r

Создает самозаверяющий сертификат.

-sc файл

Задает файл сертификата субъекта.

-sky тип_ключа

Задает тип ключа субъекта: signature, exchange или целое число, обозначающее тип поставщика. По умолчанию можно указать 1 в качестве ключа обмена и 2 в качестве ключа подписи.

-sp поставщик

Задает имя поставщика CryptoAPI для субъекта.

-sv файл_pvk

Задает PVK-файл закрытого ключа субъекта. Если файл не существует, он будет создан.

-sy тип

Задает тип поставщика CryptoAPI для субъекта.

Примеры

Следующая команда создает тестовый сертификат, выданный тестовым корневым центром по умолчанию, и записывает его в файл 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

Следующие команды создают сертификаты и помещают их в хранилища. Первая команда создает сертификат, используя тестовый корневой центр по умолчанию, и сохраняет сертификат в хранилище. Вторая команда создает еще один сертификат, используя только что созданный сертификат, и сохраняет второй сертификат в другом хранилище.

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

См. также

Ссылки

Инструменты .NET Framework

Средство проверки сертификата издателя программного обеспечения (Cert2spc.exe)

Командная строка пакета SDK