certreq

Команда certreq может использоваться для запроса сертификатов из центра сертификации (ЦС), чтобы получить ответ на предыдущий запрос из ЦС, чтобы создать новый запрос из INF-файла, принять и установить ответ на запрос, создать межсервационный или квалифицированный запрос подчиненного соответствия из существующего сертификата или запроса ЦС, и подписать запрос на перекрестную сертификацию или полное подчиненное указание.

Important

Более ранние версии команды certreq могут не предоставлять все описанные здесь параметры. Чтобы просмотреть параметры, поддерживаемые на основе определенных версий certreq, выполните параметр справки командной строки. certreq -v -?

Команда certreq не поддерживает создание нового запроса на сертификат на основе шаблона аттестации ключей при использовании среды CEP/CES.

Warning

Содержимое этого раздела основано на параметрах по умолчанию для Windows Server; Например, задайте длину ключа в 2048 году, выбрав поставщика хранилища ключей программного обеспечения Майкрософт в качестве CSP и используя безопасный хэш-алгоритм 1 (SHA1). Оцените эти выборы в соответствии с требованиями политики безопасности вашей компании.

Syntax

certreq [-submit] [options] [requestfilein [certfileout [certchainfileout [fullresponsefileOut]]]]
certreq -retrieve [options] requestid [certfileout [certchainfileout [fullresponsefileOut]]]
certreq -new [options] [policyfilein [requestfileout]]
certreq -accept [options] [certchainfilein | fullresponsefilein | certfilein]
certreq -sign [options] [requestfilein [requestfileout]]
certreq -enroll [options] templatename
certreq -enroll -cert certId [options] renew [reusekeys]

Parameters

Parameter Description
-submit Отправляет запрос в центр сертификации.
-восстанавливать <requestid> Получает ответ на предыдущий запрос из центра сертификации.
-new Создает новый запрос из INF-файла.
-accept Принимает и устанавливает ответ на запрос сертификата.
-policy Задает политику для запроса.
-sign Подписывает запрос перекрестной сертификации или квалифицированного подчиненного имени.
-enroll Регистрирует сертификат или обновляет его.
-? Отображает список синтаксиса certreq, параметров и описаний.
<parameter> -? Отображает справку по указанному параметру.
-v -? Отображает подробный список синтаксиса certreq, параметров и описаний.

Examples

certreq -submit

Чтобы отправить базовый запрос на сертификат:

certreq -submit certrequest.req certnew.cer certnew.pfx

Remarks

  • Это параметр certreq.exe по умолчанию. Если параметр не указан в командной строке, certreq.exe пытается отправить запрос сертификата в центр сертификации. При использовании опции -submit необходимо указать файл запроса сертификата. Если этот параметр опущен, появится общее окно «Открыть файл », в котором можно выбрать соответствующий файл запроса сертификата.

  • Чтобы запросить сертификат, указав атрибут SAN, см . раздел "Как использовать служебную программу certreq.exe для создания и отправки сертификата " статьи базы знаний Майкрософт 931351 Добавление альтернативного имени субъекта в безопасный сертификат LDAP.

certreq -retrieve

Чтобы получить сертификат с идентификатором 20 и создать файл сертификата (.cer) с именем MyCertificate, выполните следующие действия.

certreq -retrieve 20 MyCertificate.cer

Remarks

  • Используйте certreq -retrieve requestid, чтобы получить сертификат после того, как центр сертификации выдал его. Идентификатор запроса PKC может быть десятичным или шестнадцатеричным с префиксом 0x, а может быть серийным номером сертификата без префикса 0x. Вы также можете использовать его для получения любого сертификата, который когда-либо был выдан центром сертификации, включая отозванные или истекшие сертификаты, не учитывая, был ли запрос сертификата когда-либо в состоянии ожидания.

  • Если вы отправляете запрос в центр сертификации, модуль политики центра сертификации может оставить запрос в ожидающем состоянии и вернуть идентификатор запроса вызывающему объекту certreq для отображения. В конечном итоге администратор центра сертификации выдает сертификат или отклоняет запрос.

certreq -new

Чтобы создать новый запрос, выполните приведенные действия.

[newrequest]
; At least one value must be set in this section
subject = CN=W2K8-BO-DC.contoso2.com

Ниже приведены некоторые из возможных разделов, которые могут быть добавлены в INF-файл:

[newrequest]

Эта область INF-файла является обязательной для всех новых шаблонов запросов сертификатов и должна содержать по крайней мере один параметр со значением.

Key1 Description Value2 Example
Subject Несколько приложений зависят от сведений субъекта в сертификате. Рекомендуется указать значение для этого ключа. Если тема не задана здесь, рекомендуется включить имя субъекта как часть расширения сертификата альтернативного имени субъекта. Относительные значения строки "Различающееся имя" Тема = CN=computer1.contoso.com Тема = CN=Джон Смит,CN=Пользователи,DC=Contoso,DC=com
Exportable Если задано значение TRUE, закрытый ключ можно экспортировать с помощью сертификата. Чтобы обеспечить высокий уровень безопасности, закрытые ключи не должны экспортироваться; Однако в некоторых случаях может потребоваться, если несколько компьютеров или пользователей должны совместно использовать один закрытый ключ. true | false Exportable = TRUE. Ключи CNG могут различать этот и доступный для экспорта открытый текст. Ключи CAPI1 не могут.
ExportableEncrypted Указывает, следует ли задать для экспорта закрытый ключ. true | false ExportableEncrypted = true

Кончик: Не все размеры открытых ключей и алгоритмы работают со всеми алгоритмами хеширования. Указанный поставщик служб CSP также должен поддерживать указанный хэш-алгоритм. Чтобы просмотреть список поддерживаемых хэш-алгоритмов, можно выполнить команду: certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo

HashAlgorithm Хэш-алгоритм, используемый для этого запроса. Sha256, sha384, sha512, sha1, md5, md4, md2 HashAlgorithm = sha1. Чтобы просмотреть список поддерживаемых хэш-алгоритмов: certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo
KeyAlgorithm Алгоритм, используемый поставщиком услуг для создания пары открытых и закрытых ключей. RSA, DH, DSA, ECDH_P256, ECDH_P521, ECDSA_P256, ECDSA_P384, ECDSA_P521 KeyAlgorithm = RSA
KeyContainer Не рекомендуется задавать этот параметр для новых запросов, в которых создается новый материал ключа. Контейнер ключей автоматически создается и поддерживается системой.

Для запросов, в которых следует использовать существующий материал ключа, это значение можно задать в качестве имени контейнера ключей существующего ключа. certutil -key Используйте команду, чтобы отобразить список доступных контейнеров ключей для контекста компьютера. certutil -key -user Используйте команду для контекста текущего пользователя.

Случайное строковое значение

Кончик: Используйте двойные кавычки вокруг любого значения INF-ключа, содержащего пробелы или специальные символы, чтобы избежать потенциальных проблем с синтаксическим анализом INF.

KeyContainer = {C347BD28-7F69-4090-AA16-BC58CF4D749C}
KeyLength Определяет длину открытого и закрытого ключа. Длина ключа влияет на уровень безопасности сертификата. Большая длина ключа обычно обеспечивает более высокий уровень безопасности; однако некоторые приложения могут иметь ограничения в отношении длины ключа. Любая допустимая длина ключа, поддерживаемая поставщиком служб шифрования. KeyLength = 2048
KeySpec Определяет, можно ли использовать ключ для подписей, для Exchange (шифрования) или для обоих. AT_NONE, AT_SIGNATURE, AT_KEYEXCHANGE KeySpec = AT_KEYEXCHANGE
KeyUsage Определяет, для чего должен использоваться ключ сертификата.
  • CERT_DIGITAL_SIGNATURE_KEY_USAGE -- 80 (128)
  • CERT_NON_REPUDIATION_KEY_USAGE -- 40 (64)
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE -- 20 (32)
  • CERT_DATA_ENCIPHERMENT_KEY_USAGE -- 10 (16)
  • CERT_KEY_AGREEMENT_KEY_USAGE -- 8
  • CERT_KEY_CERT_SIGN_KEY_USAGE -- 4
  • CERT_OFFLINE_CRL_SIGN_KEY_USAGE -- 2
  • CERT_CRL_SIGN_KEY_USAGE -- 2
  • CERT_ENCIPHER_ONLY_KEY_USAGE -- 1
  • CERT_DECIPHER_ONLY_KEY_USAGE -- 8000 (32768)
KeyUsage = CERT_DIGITAL_SIGNATURE_KEY_USAGE | CERT_KEY_ENCIPHERMENT_KEY_USAGE

Кончик: Для нескольких значений используется разделитель символов вертикальной черты (|). Убедитесь, что при использовании нескольких значений используются двойные кавычки, чтобы избежать проблем с синтаксического анализа INF. Отображаемые значения — шестнадцатеричные (десятичные) значения для каждого определения бита. Кроме того, можно использовать более старый синтаксис: одно шестнадцатеричное значение с несколькими битами, а не символьное представление. Например, KeyUsage = 0xa0.

KeyUsageProperty Извлекает значение, определяющее конкретную цель, для которой можно использовать закрытый ключ.
  • NCRYPT_ALLOW_DECRYPT_FLAG -- 1
  • NCRYPT_ALLOW_SIGNING_FLAG -- 2
  • NCRYPT_ALLOW_KEY_AGREEMENT_FLAG -- 4
  • NCRYPT_ALLOW_ALL_USAGES -- ffffff (16777215)
KeyUsageProperty = NCRYPT_ALLOW_DECRYPT_FLAG | NCRYPT_ALLOW_SIGNING_FLAG
MachineKeySet Этот ключ важен, если необходимо создать сертификаты, принадлежащие компьютеру, а не пользователю. Созданный ключевой материал сохраняется в контексте безопасности субъекта безопасности (учетной записи пользователя или компьютера), создавшего запрос. Когда администратор создает запрос сертификата от имени компьютера, необходимо создать ключевой материал в контексте безопасности компьютера, а не в контексте безопасности администратора. В противном случае компьютер не мог получить доступ к его закрытому ключу, так как он будет находиться в контексте безопасности администратора. true | false. Значение по умолчанию — false. MachineKeySet = true
NotBefore Указывает дату или дату и время, до которого запрос не может быть выдан. NotBefore можно использовать с ValidityPeriod и ValidityPeriodUnits. Дата или время NotBefore = 7/24/2012 10:31 AM

Кончик:NotBefore и NotAfter предназначены только для RequestType=cert . Синтаксический анализ даты пытается быть языковым стандартом. Использование имен месяцев отвещает и должно работать в каждом языковом стандарте.

NotAfter Указывает дату или дату и время, после которого запрос не может быть выдан. NotAfter нельзя использовать с ValidityPeriod или ValidityPeriodUnits. Дата или время NotAfter = 9/23/2014 10:31 AM

Кончик:NotBefore и NotAfter предназначены только для RequestType=cert этого. Синтаксический анализ даты пытается быть языковым стандартом. Использование имен месяцев отвещает и должно работать в каждом языковом стандарте.

PrivateKeyArchive Параметр PrivateKeyArchive работает только в том случае, если для соответствующего запроса RequestType задано значение CMC, так как только в формате запроса управления сертификатами через CMS (CMC) можно безопасно передать закрытый ключ запрашивающего в ЦС для архивации ключей. true | false PrivateKeyArchive = true
EncryptionAlgorithm Используемый алгоритм шифрования. Возможные параметры зависят от версии операционной системы и набора установленных поставщиков шифрования. Чтобы просмотреть список доступных алгоритмов, выполните команду: certutil -oid 2 | findstr pwszCNGAlgid Указанный используемый поставщик служб CSP также должен поддерживать указанный алгоритм симметричного шифрования и длину. EncryptionAlgorithm = 3des
EncryptionLength Длина используемого алгоритма шифрования. Любая длина, разрешенная указанным EncryptionAlgorithm. EncryptionLength = 128
ProviderName Имя поставщика — это отображаемое имя CSP. Если вы не знаете имя поставщика используемой службы CSP, выполните команду certutil -csplist из командной строки. Команда отображает имена всех поставщиков служб, доступных в локальной системе. ProviderName = Microsoft RSA SChannel Cryptographic Provider
ProviderType Тип поставщика используется для выбора конкретных поставщиков на основе конкретных возможностей алгоритма, таких как RSA Full. Если вы не знаете тип поставщика используемой службы CSP, выполните команду certutil -csplist из командной строки. Команда отображает тип поставщика всех поставщиков, доступных в локальной системе. ProviderType = 1
RenewalCert Если необходимо обновить сертификат, который существует в системе, где создается запрос на сертификат, необходимо указать хэш сертификата в качестве значения этого ключа. Хэш сертификата любого сертификата, доступного на компьютере, на котором создается запрос сертификата. Если вы не знаете хэш сертификата, используйте оснастку MMC certificates и просмотрите сертификат, который следует продлить. Откройте свойства сертификата и просмотрите Thumbprint атрибут сертификата. Для продления сертификата требуется PKCS#7 формат запроса или CMC формат запроса. RenewalCert = AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
RequesterName Выполняет запрос на регистрацию от имени другого запроса пользователя. Запрос также должен быть подписан с помощью сертификата агента регистрации или ЦС отклоняет запрос. -cert Используйте параметр, чтобы указать сертификат агента регистрации. Имя запрашивающего средства можно указать для запросов сертификатов, если RequestType задано PKCS#7 значение или CMC. RequestType Если задано значение PKCS#10, этот ключ игнорируется. Его Requestername можно задать только как часть запроса. Вы не можете управлять Requestername запросом в ожидании. Domain\User Requestername = Contoso\BSmith
RequestType Определяет стандарт, используемый для создания и отправки запроса на сертификат.
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
Кончик: Этот параметр указывает на самозаверяющий или самостоятельно выданный сертификат. Он не создает запрос, а новый сертификат, а затем устанавливает сертификат. Самозаверяющий — это значение по умолчанию. Укажите сертификат подписи с помощью параметра -cert, чтобы создать самостоятельно выданный сертификат, который не является самозаверяющим.
RequestType = CMC
SecurityDescriptor Содержит сведения о безопасности, связанные с защищаемыми объектами. Для большинства защищаемых объектов можно указать дескриптор безопасности объекта в вызове функции, создающего объект. Строки на основе языка определения дескриптора безопасности.

Кончик: Это актуально только для ключей компьютерного контекста, отличных от смарт-карт.

SecurityDescriptor = D:P(A;;GA;;;SY)(A;;GA;;;BA)
AlternateSignatureAlgorithm Указывает и извлекает логическое значение, указывающее, является ли идентификатор объекта алгоритма подписи (OID) для запроса PKCS#10 или подписи сертификата дискретным или объединенным. true | false AlternateSignatureAlgorithm = false

Для сигнатуры false RSA указывает , Pkcs1 v1.5а true также v2.1 подпись.

Silent По умолчанию этот параметр позволяет CSP получать доступ к интерактивному рабочему столу пользователя и запрашивать такие сведения, как ПИН-код смарт-карты от пользователя. Если этот ключ имеет значение TRUE, CSP не должен взаимодействовать с рабочим столом и будет заблокирован от отображения пользовательского интерфейса пользователю. true | false Silent = true
SMIME Если этот параметр имеет значение TRUE, расширение с значением идентификатора объекта 1.2.840.113549.1.9.15 добавляется в запрос. Количество идентификаторов объектов зависит от установленной версии операционной системы и возможности CSP, которая относится к симметричным алгоритмам шифрования, которые могут использоваться приложениями Secure Multipurpose Internet Mail Extensions (S/MIME), такими как Outlook. true | false SMIME = true
UseExistingKeySet Этот параметр используется для указания того, что существующая пара ключей должна использоваться при создании запроса на сертификат. Если этот ключ имеет значение TRUE, необходимо также указать значение ключа RenewalCert или имени KeyContainer. Невозможно задать ключ для экспорта, так как нельзя изменить свойства существующего ключа. В этом случае при создании запроса сертификата не создается никакого материала ключа. true | false UseExistingKeySet = true
KeyProtection Указывает значение, указывающее, как защищается закрытый ключ перед использованием.
  • XCN_NCRYPT_UI_NO_PROTCTION_FLAG -- 0
  • XCN_NCRYPT_UI_PROTECT_KEY_FLAG -- 1
  • XCN_NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG -- 2
KeyProtection = NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG
SuppressDefaults Указывает логическое значение, указывающее, включены ли расширения и атрибуты по умолчанию в запрос. Значения по умолчанию представлены идентификаторами объектов (OID). true | false SuppressDefaults = true
FriendlyName Понятное имя нового сертификата. Text FriendlyName = Server1
ValidityPeriodUnits Указывает множество единиц, которые должны использоваться в ДействииPeriod. Примечание. Это используется только в том случае, если .request type=cert Numeric ValidityPeriodUnits = 3
ValidityPeriod ДопустимостьPeriod должна быть периодом времени множественного числа в США. Примечание. Это используется только в том случае, если тип запроса=cert. Years | Months | Weeks | Days | Hours | Minutes | Seconds ValidityPeriod = Years

1Параметр слева от знака равенства (=)

2Параметр справа от знака равенства (=)

[Extensions]

Это необязательный раздел.

Extension OID Definition Example
2.5.29.17 2.5.29.17 = {текст}
_continue_ continue = UPN=User@Domain.com&
_continue_ continue = EMail=User@Domain.com&
_continue_ continue = DNS=host.domain.com&
_continue_ continue = DirectoryName=CN=Name,DC=Domain,DC=com&
_continue_ continue = URL=<http://host.domain.com/default.html&>
_continue_ continue = IPAddress=10.0.0.1&
_continue_ continue = RegisteredId=1.2.3.4.5&
_continue_ continue = 1.2.3.4.6.1={utf8}String&
_continue_ continue = 1.2.3.4.6.2={octet}AAECAwQFBgc=&
_continue_ continue = 1.2.3.4.6.2={octet}{hex}00 01 02 03 04 05 06 07&
_continue_ continue = 1.2.3.4.6.3={asn}BAgAAQIDBAUGBw==&
_continue_ continue = 1.2.3.4.6.3={hex}04 08 00 01 02 03 04 05 06 07
2.5.29.37 2.5.29.37={text}
_continue_ continue = 1.3.6.1.5.5.7
_continue_ continue = 1.3.6.1.5.5.7.3.1
2.5.29.19 {text}ca=0pathlength=3
Critical Critical=2.5.29.19
KeySpec
  • AT_NONE -- 0
  • AT_SIGNATURE -- 2
  • AT_KEYEXCHANGE -- 1
RequestType
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
KeyUsage
  • CERT_DIGITAL_SIGNATURE_KEY_USAGE -- 80 (128)
  • CERT_NON_REPUDIATION_KEY_USAGE -- 40 (64)
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE -- 20 (32)
  • CERT_DATA_ENCIPHERMENT_KEY_USAGE -- 10 (16)
  • CERT_KEY_AGREEMENT_KEY_USAGE -- 8
  • CERT_KEY_CERT_SIGN_KEY_USAGE -- 4
  • CERT_OFFLINE_CRL_SIGN_KEY_USAGE -- 2
  • CERT_CRL_SIGN_KEY_USAGE -- 2
  • CERT_ENCIPHER_ONLY_KEY_USAGE -- 1
  • CERT_DECIPHER_ONLY_KEY_USAGE -- 8000 (32768)
KeyUsageProperty
  • NCRYPT_ALLOW_DECRYPT_FLAG -- 1
  • NCRYPT_ALLOW_SIGNING_FLAG -- 2
  • NCRYPT_ALLOW_KEY_AGREEMENT_FLAG -- 4
  • NCRYPT_ALLOW_ALL_USAGES -- ffffff (16777215)
KeyProtection
  • NCRYPT_UI_NO_PROTECTION_FLAG -- 0
  • NCRYPT_UI_PROTECT_KEY_FLAG -- 1
  • NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG -- 2
SubjectNameFlags template
  • CT_FLAG_SUBJECT_REQUIRE_COMMON_NAME -- 40000000 (1073741824)
  • CT_FLAG_SUBJECT_REQUIRE_DIRECTORY_PATH -- 80000000 (2147483648)
  • CT_FLAG_SUBJECT_REQUIRE_DNS_AS_CN -- 10000000 (268435456)
  • CT_FLAG_SUBJECT_REQUIRE_EMAIL -- 20000000 (536870912)
  • CT_FLAG_OLD_CERT_SUPPLIES_SUBJECT_AND_ALT_NAME -- 8
  • CT_FLAG_SUBJECT_ALT_REQUIRE_DIRECTORY_GUID -- 1000000 (16777216)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_DNS -- 8000000 (134217728)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_DOMAIN_DNS -- 400000 (4194304)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_EMAIL -- 4000000 (67108864)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_SPN -- 800000 (8388608)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_UPN -- 2000000 (33554432)
X500NameFlags
  • CERT_NAME_STR_NONE -- 0
  • CERT_OID_NAME_STR -- 2
  • CERT_X500_NAME_STR -- 3
  • CERT_NAME_STR_SEMICOLON_FLAG -- 40000000 (1073741824)
  • CERT_NAME_STR_NO_PLUS_FLAG -- 20000000 (536870912)
  • CERT_NAME_STR_NO_QUOTING_FLAG -- 10000000 (268435456)
  • CERT_NAME_STR_CRLF_FLAG -- 8000000 (134217728)
  • CERT_NAME_STR_COMMA_FLAG -- 4000000 (67108864)
  • CERT_NAME_STR_REVERSE_FLAG -- 2000000 (33554432)
  • CERT_NAME_STR_FORWARD_FLAG -- 1000000 (16777216)
  • CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG -- 10000 (65536)
  • CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG -- 20000 (131072)
  • CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG -- 40000 (262144)
  • CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG -- 80000 (524288)
  • CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG -- 100000 (1048576)
  • CERT_NAME_STR_ENABLE_PUNYCODE_FLAG -- 200000 (2097152)

Note

SubjectNameFlags позволяет в INF-файле указать, какие поля расширения Subject и SubjectAltName должны автоматически заполняться certreq на основе текущего пользователя или текущих свойств компьютера: DNS-имя, имя участника-пользователя и т. д. Использование литерального шаблона означает, что вместо этого используются флаги имени шаблона. Это позволяет использовать один INF-файл в нескольких контекстах для создания запросов с информацией о субъекте для конкретного контекста.

X500NameFlags указывает флаги, которые должны быть переданы непосредственно в CertStrToName API при преобразовании Subject INF keys значения в закодированное ASN.1 Distinguished Name.

Example

Чтобы создать файл политики (.inf) в Блокноте и сохранить его как requestconfig.inf:

[NewRequest]
Subject = CN=<FQDN of computer you are creating the certificate>
Exportable = TRUE
KeyLength = 2048
KeySpec = 1
KeyUsage = 0xf0
MachineKeySet = TRUE
[RequestAttributes]
CertificateTemplate=WebServer
[Extensions]
OID = 1.3.6.1.5.5.7.3.1
OID = 1.3.6.1.5.5.7.3.2

На компьютере, для которого запрашивается сертификат:

certreq -new requestconfig.inf certrequest.req

Использование синтаксиса раздела [Strings] для OID и других сложных для интерпретации данных. Новый пример синтаксиса {text} для расширения EKU, использующего разделенный запятыми список OID:

[Version]
Signature=$Windows NT$

[Strings]
szOID_ENHANCED_KEY_USAGE = 2.5.29.37
szOID_PKIX_KP_SERVER_AUTH = 1.3.6.1.5.5.7.3.1
szOID_PKIX_KP_CLIENT_AUTH = 1.3.6.1.5.5.7.3.2

[NewRequest]
Subject = CN=TestSelfSignedCert
Requesttype = Cert

[Extensions]
%szOID_ENHANCED_KEY_USAGE%={text}%szOID_PKIX_KP_SERVER_AUTH%,
_continue_ = %szOID_PKIX_KP_CLIENT_AUTH%

Чтобы указать альтернативное имя субъекта (SAN), добавьте его в раздел [Расширения] inf. For example:

[Version]
Signature=$Windows NT$
 
[Strings]
szOID_ENHANCED_KEY_USAGE = 2.5.29.37
szOID_PKIX_KP_SERVER_AUTH = 1.3.6.1.5.5.7.3.1
szOID_PKIX_KP_CLIENT_AUTH = 1.3.6.1.5.5.7.3.2

[NewRequest]
Subject = CN=TestSelfSignedCert
Requesttype = Cert

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "IP Address=192.168.1.1"

В этом примере — это идентификатор OID, 2.5.29.17 определяющий SAN. Чтобы указать несколько сетей SAN, _continue_ используется OID расширения, который позволяет разделить и указать каждое расширение SAN.

certreq -accept

Параметр -accept связывает ранее созданный закрытый ключ с выданным сертификатом и удаляет ожидающий запрос на сертификат из системы, где запрашивается сертификат (если запрос совпадает).

Чтобы принять сертификат вручную, выполните приведенные действия.

certreq -accept certnew.cer

Warning

Использование параметра -accept с опциями и -user указывает, -machine следует ли устанавливать сертификат установки в контексте пользователя или компьютера. Если в любом контексте есть невыполненные запросы, соответствующие установленному открытому ключу, эти параметры не нужны. Если нет невыполненных запросов, необходимо указать один из них.

certreq -policy

Файл policy.inf — это файл конфигурации, определяющий ограничения, применяемые к сертификации ЦС, при определении определенной подподчины.

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

certreq -policy certsrv.req policy.inf newcertsrv.req

При использовании certreq -policy без других параметров открывается диалоговое окно, позволяющее выбрать запрошенный файл (.req, .cmc, .txt, .der, .cer или .crt). После того как вы выберете запрошенный файл и нажмете кнопку Открыть, откроется еще одно диалоговое окно, в котором можно выбрать файл policy.inf.

Examples

Пример файла policy.inf можно найти в синтаксисе CAPolicy.inf.

certreq -sign

Чтобы создать новый запрос сертификата, подписать его и отправить его:

certreq -new policyfile.inf myrequest.req
certreq -sign myrequest.req myrequest.req
certreq -submit myrequest_sign.req myrequest_cert.cer

Remarks

  • Использование certreq -sign без других параметров открывает диалоговое окно, чтобы выбрать запрошенный файл (req, cmc, txt, der, cer или crt).

  • Для подписания квалифицированного запроса на подчинение могут потребоваться учетные данные администратора предприятия . Это рекомендуется для выдачи сертификатов подписи для полной подчиненности.

  • Сертификат, используемый для подписи квалифицированного запроса подподчинения, использует шаблон полной подчиненности. Администраторы предприятия должны подписать запрос или предоставить пользователям разрешения на подпись сертификата.

  • После вас может потребоваться подписать запрос CMC дополнительным персоналом. Это зависит от уровня гарантии, связанного с квалифицированным подчиненным.

  • Если родительский ЦС квалифицированного подчиненного ЦС, который вы устанавливаете, находится в автономном режиме, необходимо получить сертификат ЦС для квалифицированного подчиненного ЦС из автономного родительского центра сертификации. Если родительский ЦС находится в сети, укажите сертификат ЦС для квалифицированного подчиненного ЦС во время мастера установки служб сертификатов.

certreq -enroll

Этот комментарий можно использовать для регистрации или продления сертификатов.

Examples

Чтобы зарегистрировать сертификат, используя шаблон WebServer и выбрав сервер политик с помощью U/I:

certreq -enroll -machine -policyserver * WebServer

Чтобы обновить сертификат с помощью серийного номера, выполните следующее:

certreq -enroll -machine -cert 61 2d 3c fe 00 00 00 00 00 05 renew

Можно продлить только допустимые сертификаты. Сертификаты с истекшим сроком действия не могут быть продлены и должны быть заменены новым сертификатом.

Options

Options Description
-any Force ICertRequest::Submit для определения типа кодирования.
-аттриб <attributestring> Указывает пары строк Name и Value , разделенные двоеточием.

Разделите пары строк Name и Value с помощью (\nнапример, Name1:value1\nName2:value2).

-binary Форматирует выходные файлы в виде двоичных файлов вместо кодировки Base64.
-policyserver <policyserver> ЛДАП: <path>
Вставьте универсальный код ресурса (URI) или уникальный идентификатор компьютера, на котором запущена веб-служба политики регистрации сертификатов.

Чтобы указать, что вы хотите использовать файл запроса, просматривая его, просто используйте знак <policyserver>минуса (-).

-конфигурация <ConfigString> Обрабатывает операцию с помощью ЦС, указанного в строке конфигурации, которым является CAHostName\CAName. Для подключения https:\\ укажите URI сервера регистрации. Для ЦС локального хранилища компьютеров используйте знак минуса (-).
-anonymous Используйте анонимные учетные данные для веб-служб регистрации сертификатов.
-kerberos Используйте учетные данные Kerberos (домен) для веб-служб регистрации сертификатов.
-клиентский сертификат <ClientCertId> Можно заменить <ClientCertId> отпечатком сертификата, CN, EKU, шаблоном, электронной почтой, upN или новым name=value синтаксисом.
-имя пользователя <username> Используется с веб-службами регистрации сертификатов. Вы можете заменить <username> на имя SAM или значение domain\user. Этот параметр предназначен для использования с параметром -p .
- <password> Используется с веб-службами регистрации сертификатов. Замените <password> фактическим паролем пользователя. Этот параметр предназначен для использования с параметром -username .
-user Настраивает -user контекст для нового запроса сертификата или задает контекст принятия сертификата. Это контекст по умолчанию, если ни один из них не указан в INF или шаблоне.
-machine Настраивает новый запрос сертификата или указывает контекст для принятия сертификата для контекста компьютера. Для новых запросов он должен быть согласован с ключом INF MachineKeyset и контекстом шаблона. Если этот параметр не указан, и шаблон не задает контекст, то по умолчанию используется контекст пользователя.
-crl Включает списки отзыва сертификатов (CRLS) в выходные данные в файл PKCS #7, закодированный в кодировке Base64, или certchainfileout в файл с кодировкой Base64, указанный в requestfileoutфайле.
-rpc Указывает службам сертификатов Active Directory (AD CS) использовать подключение к серверу удаленного вызова процедур (RPC) вместо распределенного COM.
-adminforcemachine Используйте службу ключей или олицетворение для отправки запроса из контекста локальной системы. Требует, чтобы пользователь, вызывающий этот параметр, был членом локальных администраторов.
-renewonbehalfof Отправьте продление от имени субъекта, определенного в сертификате подписи. Это устанавливает CR_IN_ROBO при вызове метода ICertRequest::Submit
-f Принудительно перезаписывать существующие файлы. Это также проходит кэширование шаблонов и политик.
-q Использование автоматического режима; отключить все интерактивные запросы.
-unicode Записывает выходные данные Юникода, когда стандартные выходные данные перенаправляются или передаются в другую команду, которая помогает при вызове из скриптов Windows PowerShell.
-unicodetext Отправляет выходные данные Юникода при написании больших двоичных объектов данных в кодировке Base64 в файлы.

Formats

Formats Description
requestfilein Имя файла в кодировке Base64 или имя двоичного входного файла: запрос сертификата PKCS #10, запрос сертификата CMS, запрос на продление сертификата PKCS #7, сертификат X.509 для перекрестной сертификации или запрос на формат сертификата тега KeyGen.
requestfileout Имя выходного файла в кодировке Base64.
certfileout Имя файла X-509 в кодировке Base64.
PKCS10fileout Для использования только с параметром certreq -policy . Имя выходного файла в кодировке Base64 pKCS10.
certchainfileout Имя файла PKCS #7 в кодировке Base64.
fullresponsefileout Полное имя файла ответа в кодировке Base64.
policyfilein Для использования только с параметром certreq -policy . INF-файл, содержащий текстовое представление расширений, используемых для квалификации запроса.

Additional Resources

В следующих статьях приведены примеры использования certreq: