MakeCert

Примечание

Мы не рекомендуем использовать MakeCert. Чтобы создать самозаверяющие сертификаты, используйте командлет PowerShell New-SelfSignedCertificate.

 

Средство MakeCert создает сертификат X.509 , подписанный тестовым корневым ключом или другим указанным ключом, который привязывает ваше имя к открытой части пары ключей. Сертификат сохраняется в файле, системном хранилище сертификатов или в обоих этих файлах. Средство устанавливается в папке \Bin пути установки пакета SDK для Microsoft Windows.

Средство MakeCert использует следующий синтаксис команды:

MakeCert [BasicOptions|ExtendedOptions] OutputFile

OutputFile — это имя файла, в который будет записан сертификат. Можно опустить OutputFile , если сертификат не должен быть записан в файл.

Варианты

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

Параметры makeCert также делятся на три функциональные группы:

  • Основные параметры, относящиеся только к технологии хранилища сертификатов.
  • Расширенные параметры, относящиеся только к технологии SPC-файлов и закрытых ключей.
  • Расширенные параметры, применимые к SPC-файлу, закрытому ключу и технологии хранилища сертификатов.

Параметры, указанные в следующих таблицах, можно использовать только с Интернетом Обозреватель 4.0 или более поздней версии.

Базовый параметр Описание
-aАлгоритм Хэш-алгоритм . Должен иметь значение SHA-1 или MD5 (по умолчанию). Сведения о MD5 см. в разделе MD5.
-BДата начала Дата первого вступления сертификата в силу. Значение по умолчанию — при создании сертификата. Формат DateStart — мм/дд/гггг.
-CyТипы сертификатов Тип сертификата. CertificateTypes может быть конечным для конечной сущности или центром для центра сертификации.
-EDateEnd Дата окончания срока действия. Значение по умолчанию — 2039 год.
-EkuOID1,OID2 ... Вставляет в сертификат список из одного или нескольких идентификаторов объектоврасширенного использования ключа (OID) с разделителем-запятыми. Например, -eku 1.3.6.1.5.5.7.3.2 вставляет идентификатор проверки подлинности клиента. Определения допустимых идентификаторов OID см. в файле Wincrypt.h в CryptoAPI 2.0.
-HNumChildren Максимальная высота дерева под этим сертификатом.
-LPolicyLink Ссылка на сведения о политике агентства SPC (например, URL-адрес).
nMonths Длительность периода действия.
-n"Name" Имя сертификата издателя. Это имя должно соответствовать стандарту X.500 . Самый простой способ — использовать формат CN=MyName. Например: -n "CN=Test".
-nscp Необходимо включить расширение проверки подлинности клиента Netscape.
-Pe Помечает закрытый ключ как экспортируемый.
-r создает самозаверяющий сертификат;
-ScSubjectCertFile Имя файла сертификата с существующим открытым ключом субъекта для использования.
-SkSubjectKey Расположение контейнера ключей субъекта, в котором хранится закрытый ключ. Если контейнер ключей не существует, он будет создан. Если ни параметр -sk , ни -sv не используется, создается и используется по умолчанию контейнер ключей по умолчанию.
-НебоSubjectKeySpec Спецификация ключа субъекта. SubjectKeySpec должен иметь одно из трех возможных значений:
  • Подпись (спецификация ключа AT_SIGNATURE)
  • Exchange (спецификация ключа AT_KEYEXCHANGE)
  • Целое число, например 3
Дополнительные сведения см. в примечании к этой таблице.
-SpSubjectProviderName Поставщик CryptoAPI для субъекта. По умолчанию используется поставщик пользователя. Сведения о поставщиках CryptoAPI см. в документации по CryptoAPI 2.0.
-SrSubjectCertStoreLocation Расположение реестра хранилища сертификатов субъекта. SubjectCertStoreLocation должен иметь значение LocalMachine (раздел реестра HKEY_LOCAL_MACHINE) или CurrentUser (раздел реестра HKEY_CURRENT_USER). CurrentUser используется по умолчанию.
-SsSubjectCertStoreName Имя хранилища сертификатов субъекта, в котором будет храниться созданный сертификат.
-SvSubjectKeyFile Имя PVK-файла субъекта. Если ни параметр -sk , ни -sv не используется, создается и используется по умолчанию контейнер ключей по умолчанию.
-SynSubjectProviderType Тип поставщика CryptoAPI для субъекта. Значение по умолчанию — PROV_RSA_FULL. Сведения о типах поставщиков CryptoAPI см. в документации по CryptoAPI 2.0.
-#SerialNumber Серийный номер сертификата. Максимальное значение — 2^31. Значение по умолчанию — это значение, созданное средством, которое гарантированно является уникальным.
-$CertificateAuthority Тип центра сертификации. Значение CertificateAuthority должно быть либо коммерческим (для сертификатов, используемых издателями коммерческого программного обеспечения), либо отдельным (для сертификатов, используемых отдельными издателями программного обеспечения).
-? Отображает основные параметры.
-! Отображает расширенные параметры.

 

Примечание

Если параметр спецификации ключа -sky используется в Internet Обозреватель версии 4.0 или более поздней, спецификация должна соответствовать спецификации ключа, указанной в файле закрытого ключа или контейнере закрытого ключа. Если параметр спецификации ключа не используется, будет использоваться спецификация ключа, указанная в файле закрытого ключа или контейнере закрытого ключа. Если в контейнере ключей несколько спецификаций ключей, MakeCert сначала попытается использовать спецификацию ключа AT_SIGNATURE. В случае сбоя MakeCert попытается использовать AT_KEYEXCHANGE. Так как у большинства пользователей есть ключ AT_SIGNATURE или ключ AT_KEYEXCHANGE, этот параметр в большинстве случаев использовать не требуется.

 

Следующие параметры предназначены только для файлов сертификата издателя программного обеспечения (SPC) и технологии закрытого ключа.

Параметр SPC и закрытого ключа Описание
-IcIssuerCertFile Расположение сертификата издателя.
-ИкIssuerKey Расположение контейнера ключей издателя. По умолчанию используется корневой ключ теста.
-ikyIssuerKeySpec Спецификация ключа издателя, которая должна быть одним из трех возможных значений:
  • Подпись (спецификация ключа AT_SIGNATURE)
  • Exchange (спецификация ключа AT_KEYEXCHANGE)
  • Целое число, например 3
Дополнительные сведения см. в примечании к этой таблице.
-IpIssuerProviderName Поставщик CryptoAPI для издателя. По умолчанию используется поставщик пользователя. Сведения о поставщиках CryptoAPI см. в документации по CryptoAPI 2.0.
-IvIssuerKeyFile Файл закрытого ключа издателя. По умолчанию используется корневой каталог теста.
-IynIssuerProviderType Тип поставщика CryptoAPI для издателя. Значение по умолчанию — PROV_RSA_FULL. Сведения о типах поставщиков CryptoAPI см. в документации по CryptoAPI 2.0.

 

Примечание

Если параметр спецификации ключа -iky используется в Internet Обозреватель 4.0 или более поздней версии, спецификация должна соответствовать спецификации ключа, указанной в файле закрытого ключа или контейнере закрытого ключа. Если параметр спецификации ключа не используется, будет использоваться спецификация ключа, указанная в файле закрытого ключа или контейнере закрытого ключа. Если в контейнере ключей несколько спецификаций ключей, MakeCert сначала попытается использовать спецификацию ключа AT_SIGNATURE. В случае сбоя MakeCert попытается использовать AT_KEYEXCHANGE. Так как у большинства пользователей есть ключ AT_SIGNATURE или ключ AT_KEYEXCHANGE, этот параметр в большинстве случаев использовать не требуется.

 

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

Параметр хранилища сертификатов Описание
-icIssuerCertFile Файл, содержащий сертификат издателя. MakeCert выполнит поиск сертификата с точным соответствием в хранилище сертификатов.
-inIssuerNameString Общее имя сертификата издателя. MakeCert будет искать в хранилище сертификатов, общее имя которого включает IssuerNameString.
-irIssuerCertStoreLocation Расположение реестра хранилища сертификатов издателя. IssuerCertStoreLocation должен иметь значение LocalMachine (раздел реестра HKEY_LOCAL_MACHINE) или CurrentUser (раздел реестра HKEY_CURRENT_USER). CurrentUser используется по умолчанию.
-isIssuerCertStoreName Хранилище сертификатов издателя, включающее сертификат издателя и связанные с ним сведения о закрытом ключе. Если в хранилище есть несколько сертификатов, пользователь должен однозначно идентифицировать его с помощью параметра -ic или -in . Если сертификат в хранилище сертификатов не является уникальным, makeCert завершится ошибкой.