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


certreq

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

Внимание

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

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

Предупреждение

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

Синтаксис

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]

Параметры

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

Примеры

certreq -submit

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

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

Замечания

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

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

certreq -retrieve

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

certreq -retrieve 20 MyCertificate.cer

Замечания

  • Используйте certreq -get 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-файла является обязательной для всех новых шаблонов запросов сертификатов и должна содержать по крайней мере один параметр со значением.

Ключ1 Description Значение2 Пример
Тема Несколько приложений зависят от сведений субъекта в сертификате. Рекомендуется указать значение для этого ключа. Если тема не задана здесь, рекомендуется включить имя субъекта как часть расширения сертификата альтернативного имени субъекта. Относительные значения строки "Различающееся имя" Subject = CN=computer1.contoso.com Subject=CN=John Smith,CN=Users,DC=Contoso,DC=com
Доступный для экспорта Если задано значение 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
Продление сертификата Если необходимо обновить сертификат, который существует в системе, где создается запрос на сертификат, необходимо указать хэш сертификата в качестве значения этого ключа. Хэш сертификата любого сертификата, доступного на компьютере, на котором создается запрос сертификата. Если вы не знаете хэш сертификата, используйте оснастку MMC certificates и просмотрите сертификат, который следует продлить. Откройте свойства сертификата и просмотрите Thumbprint атрибут сертификата. Для продления сертификата требуется PKCS#7 формат запроса или CMC формат запроса. RenewalCert = 4EDF274BD2919C6E9EC6A522F0F3B153E9B1582D
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 подпись.

Автоматически По умолчанию этот параметр позволяет 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
ПодавлениеDefaults Указывает логическое значение, указывающее, включены ли расширения и атрибуты по умолчанию в запрос. Значения по умолчанию представлены идентификаторами объектов (OID). true | false SuppressDefaults = true
Понятное имя Понятное имя нового сертификата. Текст FriendlyName = Server1
ValidityPeriodUnits Указывает множество единиц, которые должны использоваться в ДействииPeriod. Примечание. Это используется только в том случае, если .request type=cert Числовое ValidityPeriodUnits = 3
ValidityPeriod ДопустимостьPeriod должна быть периодом времени множественного числа в США. Примечание. Это используется только в том случае, если тип запроса=cert. Years | Months | Weeks | Days | Hours | Minutes | Seconds ValidityPeriod = Years

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

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

[Расширения]

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

Расширение OID Определение Пример
2.5.29.17 2.5.29.17 = {text}
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=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 JSON
  • 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)

Примечание.

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

X500NameFlags указывает флаги, передаваемые непосредственно CertStrToName в API, когда Subject INF keys значение преобразуется в asN.1 в кодировке "Различающееся имя".

Пример

Чтобы создать файл политики (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. Например:

[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

Предупреждение

-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.

Примеры

Найдите пример файла 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

Замечания

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

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

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

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

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

certreq -enroll

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

Примеры

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

certreq -enroll –machine –policyserver * WebServer

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

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

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

Параметры

Параметры Description
-любой Force ICertRequest::Submit для определения типа кодирования.
-attrib <attributestring> Задает пары строк "Имя" и "Значение", разделенные двоеточием.

Отдельные пары "Имя и значение", использующие (\nнапример, Name1:value1\nName2:value2).

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

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

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

Список типов

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

Дополнительные ресурсы

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