certreq

Clave1 Descripción Valor2 Ejemplo
Contenido Varias aplicaciones dependen de la información del asunto en un certificado. Se recomienda especificar un valor para esta clave. Si el asunto no se establece aquí, se recomienda incluir un nombre de sujeto como parte de la extensión de certificado de nombre alternativo del firmando. Valores de cadena de nombre distintivo relativo Subject = CN=computer1.contoso.com Subject=CN=John Smith,CN=Users,DC=Contoso,DC=com
Exportable Si se establece en TRUE, la clave privada se puede exportar con el certificado. Para garantizar un alto nivel de seguridad, las claves privadas no deben ser exportables. sin embargo, en algunos casos, podría ser necesario si varios equipos o usuarios deben compartir la misma clave privada. true | false Exportable = TRUE. Las claves CNG pueden distinguir entre este y el texto no cifrado exportable. Las claves CAPI1 no pueden.
ExportableEncrypted Especifica si la clave privada debe establecerse para que sea exportable. true | false ExportableEncrypted = true

Propina: No todos los algoritmos y tamaños de clave pública funcionarán con todos los algoritmos hash. El CSP especificado también debe admitir el algoritmo hash especificado. Para ver la lista de algoritmos hash admitidos, puede ejecutar el comando : certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo

HashAlgorithm Algoritmo hash que se usará para esta solicitud. Sha256, sha384, sha512, sha1, md5, md4, md2 HashAlgorithm = sha1. Para ver la lista de algoritmos hash admitidos, use: certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo
KeyAlgorithm Algoritmo que usará el proveedor de servicios para generar un par de claves pública y privada. RSA, DH, DSA, ECDH_P256, ECDH_P521, ECDSA_P256, ECDSA_P384, ECDSA_P521 KeyAlgorithm = RSA
KeyContainer No se recomienda establecer este parámetro para las nuevas solicitudes en las que se genera nuevo material de clave. El sistema genera y mantiene automáticamente el contenedor de claves.

Para las solicitudes en las que se debe usar el material de clave existente, este valor se puede establecer en el nombre del contenedor de claves de la clave existente. Use el certutil –key comando para mostrar la lista de contenedores de claves disponibles para el contexto de la máquina. Use el certutil –key –user comando para el contexto del usuario actual.

Valor de cadena aleatorio

Propina: Use comillas dobles alrededor de cualquier valor de clave INF que tenga espacios en blanco o caracteres especiales para evitar posibles problemas de análisis de INF.

KeyContainer = {C347BD28-7F69-4090-AA16-BC58CF4D749C}
KeyLength Define la longitud de la clave pública y privada. La longitud de la clave afecta al nivel de seguridad del certificado. Una mayor longitud de clave normalmente proporciona un nivel de seguridad mayor; sin embargo, algunas aplicaciones pueden tener limitaciones con respecto a la longitud de la clave. Cualquier longitud de clave válida que sea compatible con el proveedor de servicios criptográficos. KeyLength = 2048
KeySpec Determina si la clave se puede usar para las firmas, para Exchange (cifrado) o para ambos. AT_NONE, AT_SIGNATURE, AT_KEYEXCHANGE KeySpec = AT_KEYEXCHANGE
KeyUsage Define para qué se debe usar la clave de certificado.
  • 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

Propina: Varios valores usan un separador de símbolos de canalización (|). Asegúrese de usar comillas dobles al usar varios valores para evitar problemas de análisis de INF. Los valores mostrados son valores hexadecimales (decimales) para cada definición de bits. También se puede usar una sintaxis anterior: un único valor hexadecimal con varios bits establecidos, en lugar de la representación simbólica. Por ejemplo, KeyUsage = 0xa0.

KeyUsageProperty Recupera un valor que identifica el propósito específico para el que se puede usar una clave privada.
  • 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 Esta clave es importante cuando necesita crear certificados que pertenecen a la máquina y no a un usuario. El material clave que se genera se mantiene en el contexto de seguridad de la entidad de seguridad (cuenta de usuario o equipo) que ha creado la solicitud. Cuando un administrador crea una solicitud de certificado en nombre de un equipo, el material de clave debe crearse en el contexto de seguridad de la máquina y no en el contexto de seguridad del administrador. De lo contrario, la máquina no pudo acceder a su clave privada, ya que estaría en el contexto de seguridad del administrador. true | false. El valor predeterminado es false. MachineKeySet = true
NotBefore Especifica una fecha o una fecha y hora anteriores a las que no se puede emitir la solicitud. NotBefore se puede usar con ValidityPeriod y ValidityPeriodUnits . Fecha o fecha y hora NotBefore = 7/24/2012 10:31 AM

Propina: y NotAfter son solo para equestType=cert R. Los intentos de análisis de fechas distinguen la configuración regional. El uso de nombres de mes eliminará la ambigüedad y debería funcionar en cada configuración regional.

NotAfter Especifica una fecha o una fecha y hora después de las cuales no se puede emitir la solicitud. NotAfter no se puede usar con ValidityPeriod o ValidityPeriodUnits . Fecha o fecha y hora NotAfter = 9/23/2014 10:31 AM

Propina: y NotAfter son solo para RequestType=cert . Los intentos de análisis de fechas distinguen la configuración regional. El uso de nombres de mes eliminará la ambigüedad y debería funcionar en cada configuración regional.

PrivateKeyArchive La configuración PrivateKeyArchive solo funciona si el requestType correspondiente se establece en CMC porque solo el formato de solicitud Mensajes de administración de certificados a través de CMS (CMC) permite transferir de forma segura la clave privada del solicitante a la ca para el archivado de claves. true | false PrivateKeyArchive = true
EncryptionAlgorithm El algoritmo de cifrado que se va a usar. Las opciones posibles varían en función de la versión del sistema operativo y del conjunto de proveedores criptográficos instalados. Para ver la lista de algoritmos disponibles, ejecute el comando : certutil -oid 2 | findstr pwszCNGAlgid . El CSP especificado usado también debe admitir el algoritmo de cifrado simétrico y la longitud especificados. EncryptionAlgorithm = 3des
EncryptionLength Longitud del algoritmo de cifrado que se usará. Cualquier longitud permitida por el elemento EncryptionAlgorithm especificado. EncryptionLength = 128
ProviderName El nombre del proveedor es el nombre para mostrar del CSP. Si no conoce el nombre del proveedor del CSP que está usando, ejecute certutil –csplist desde una línea de comandos. El comando mostrará los nombres de todos los CSP que están disponibles en el sistema local. ProviderName = Microsoft RSA SChannel Cryptographic Provider
ProviderType El tipo de proveedor se usa para seleccionar proveedores específicos en función de la funcionalidad de algoritmo específica, como RSA Full. Si no conoce el tipo de proveedor del CSP que está usando, ejecute certutil –csplist desde un símbolo de la línea de comandos. El comando mostrará el tipo de proveedor de todos los CSP que están disponibles en el sistema local. ProviderType = 1
RenewalCert Si necesita renovar un certificado que existe en el sistema donde se genera la solicitud de certificado, debe especificar su hash de certificado como valor para esta clave. Hash de certificado de cualquier certificado que esté disponible en el equipo donde se crea la solicitud de certificado. Si no conoce el hash del certificado, use la Snap-In MMC certificados y busque el certificado que se debe renovar. Abra las propiedades del certificado y vea Thumbprint el atributo del certificado. La renovación de certificados requiere un PKCS#7 formato de solicitud o CMC . RenewalCert = 4EDF274BD2919C6E9EC6A522F0F3B153E9B1582D
RequesterName Realiza la solicitud para inscribirse en nombre de otra solicitud de usuario. La solicitud también debe estar firmada con un certificado del Agente de inscripción o la entidad de certificación rechazará la solicitud. Use la -cert opción para especificar el certificado del agente de inscripción. El nombre del solicitante se puede especificar para las solicitudes de certificado si RequestType está establecido en o PKCS#7CMC . Si se RequestType establece en , se PKCS#10 omitirá esta clave. solo Requestername se puede establecer como parte de la solicitud. No se puede manipular en Requestername una solicitud pendiente. Domain\User Requestername = Contoso\BSmith
RequestType Determina el estándar que se usa para generar y enviar la solicitud de certificado.
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
Propina: Esta opción indica un certificado autofirmado o autofirmado. No genera una solicitud, sino un nuevo certificado y, a continuación, instala el certificado. Autofirmado es el valor predeterminado. Especifique un certificado de firma mediante la opción –cert para crear un certificado autofirmado que no sea autofirmado.
RequestType = CMC
SecurityDescriptor Contiene la información de seguridad asociada a los objetos protegibles. Para la mayoría de los objetos protegibles, puede especificar el descriptor de seguridad de un objeto en la llamada de función que crea el objeto. Cadenas basadas en el lenguaje de definición del descriptor de seguridad.

Propina: Esto solo es relevante para las claves de tarjetas no inteligentes del contexto de la máquina.

SecurityDescriptor = D:P(A;;GA;;;SY)(A;;GA;;;BA)
AlternateSignatureAlgorithm Especifica y recupera un valor booleano que indica si el identificador de objeto (OID) del algoritmo de firma para una solicitud PKCS #10 o firma de certificado es discreto o combinado. true | false AlternateSignatureAlgorithm = false

Para una firma RSA, false indica un , mientras que indica una Pkcs1 v1.5truev2.1 firma.

Silencioso De forma predeterminada, esta opción permite al CSP acceder al escritorio del usuario interactivo y solicitar información, como un PIN de tarjeta inteligente del usuario. Si esta clave se establece en TRUE, el CSP no debe interactuar con el escritorio y se bloqueará para que no muestre ninguna interfaz de usuario al usuario. true | false Silent = true
SMIME Si este parámetro se establece en TRUE, se agrega a la solicitud una extensión con el valor de identificador de objeto 1.2.840.113549.1.9.15. El número de identificadores de objeto depende de la versión del sistema operativo instalada y de la funcionalidad csp, que hacen referencia a algoritmos de cifrado simétricos que pueden usarse en aplicaciones seguras de extensiones multipropósito de correo internet (S/MIME), como Outlook. true | false SMIME = true
UseExistingKeySet Este parámetro se usa para especificar que se debe usar un par de claves existente en la creación de una solicitud de certificado. Si esta clave se establece en TRUE, también debe especificar un valor para la clave RenewalCert o el nombre de KeyContainer. No debe establecer la clave Exportable porque no puede cambiar las propiedades de una clave existente. En este caso, no se genera ningún material de clave cuando se genera la solicitud de certificado. true | false UseExistingKeySet = true
KeyProtection Especifica un valor que indica cómo se protege una clave privada antes de su uso.
  • 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 Especifica un valor booleano que indica si las extensiones y atributos predeterminados se incluyen en la solicitud. Los valores predeterminados se representan mediante sus identificadores de objeto (ID). true | false SuppressDefaults = true
FriendlyName Nombre descriptivo del nuevo certificado. Texto FriendlyName = Server1
ValidityPeriodUnits Especifica un número de unidades que se usarán con ValidityPeriod. Nota: Esto solo se usa cuando request type=cert . Numeric ValidityPeriodUnits = 3
ValidityPeriod ValidityPeriod debe ser un período de tiempo plural en inglés de EE. UU. Nota: Esto solo se usa cuando la solicitud type=cert. Years | Months | Weeks | Days | Hours | Minutes | Seconds ValidityPeriod = Years

1 Parámetro a la izquierda del signo igual (=)

2 Parámetro a la derecha del signo igual (=)

[extensiones]

Esta sección es opcional.

OID de extensión Definición Ejemplo
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
Crítico 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)

Nota

SubjectNameFlags permite que el archivo INF especifique qué campos de extensión SubjectNameFlagsy SubjectAltName se deben rellenar automáticamente mediante certreq en función de las propiedades actuales del usuario o del equipo actual: nombre DNS, UPN, y así sucesivamente. El uso de la plantilla literal significa que se usan las marcas de nombre de plantilla en su lugar. Esto permite usar un único archivo INF en varios contextos para generar solicitudes con información de asunto específica del contexto.

X500NameFlagsespecifica las marcas que se pasarán directamente a la API cuando el valor se convierta en un nombre distintivo CertStrToNameSubject INF keys codificado asn.1. X500NameFlags

Ejemplo

Para crear un archivo de directiva (.inf) en Bloc de notas y guardarlo como 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

En el equipo para el que solicita un certificado:

certreq –new requestconfig.inf certrequest.req

Para usar la sintaxis de la sección [Cadenas] para los ID y otros datos difíciles de interpretar. El nuevo ejemplo de sintaxis {text} para la extensión EKU, que usa una lista separada por comas de ID:

[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%

certreq -accept

El parámetro vincula la clave privada generada anteriormente con el certificado emitido y quita la solicitud de certificado pendiente del sistema donde se solicita el certificado (si hay una –accept solicitud correspondiente).

Para aceptar manualmente un certificado:

certreq -accept certnew.cer

Advertencia

El uso del parámetro con las opciones y indica si el certificado de instalación -accept-user debe –machine instalarse en el contexto -accept usuario -user equipo. Si hay una solicitud pendiente en cualquier contexto que coincida con la clave pública que se está instalando, estas opciones no son necesarias. Si no hay ninguna solicitud pendiente, se debe especificar una de ellas.

certreq -policy

El archivo policy.inf es un archivo de configuración que define las restricciones aplicadas a una certificación de entidad de certificación, cuando se define una subordinación calificada.

Para compilar una solicitud de certificado cruzado:

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

El uso de sin ningún parámetro adicional abre una ventana de diálogo, lo que le permite seleccionar el archivo solicitado certreq -policy (.req, .cmc, .txt, .der, .cer o .crt). Después de seleccionar el archivo solicitado y hacer clicen Abrir, se abre otra ventana de diálogo, lo que le permite seleccionar el archivo policy.inf.

Ejemplos

Busque un ejemplo del archivo policy.inf en la sintaxis CAPolicy.inf.

certreq -sign

Para crear una nueva solicitud de certificado, regístrela y envíela:

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

Observaciones

  • Si usa sin ningún parámetro adicional, se abrirá una ventana de diálogo para que pueda seleccionar el archivo solicitado certreq -sign (req, cmc, txt, der, cer o crt).

  • La firma de la solicitud de subordinación completa puede requerir Enterprise de administrador. Se trata de un procedimiento recomendado para emitir certificados de firma para la subordinación calificada.

  • El certificado usado para firmar la solicitud de subordinación calificado usa la plantilla de subordinación calificada. Enterprise administradores tendrán que firmar la solicitud o conceder permisos de usuario a las personas que firman el certificado.

  • Es posible que deba hacer que el personal adicional firme la solicitud de CMC después de usted. Esto dependerá del nivel de control asociado a la subordinación calificada.

  • Si la CA primaria de la CA subordinada calificada que va a instalar está sin conexión, debe obtener el certificado de ca para la CA subordinada calificada del elemento primario sin conexión. Si la CA primaria está en línea, especifique el certificado de ca para la CA subordinada calificada durante el Asistente para la instalación de servicios de certificados.

certreq -enroll

Puede usar este comentario para inscribir o renovar los certificados.

Ejemplos

Para inscribir un certificado, use la plantilla WebServer y seleccione el servidor de directivas mediante U/I:

certreq -enroll –machine –policyserver * WebServer

Para renovar un certificado con un número de serie:

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

Solo puede renovar certificados válidos. Los certificados expirados no se pueden renovar y deben reemplazarse por un nuevo certificado.

Opciones

Opciones Descripción
-any Force ICertRequest::Submit para determinar el tipo de codificación.
-attrib <attributestring> Especifica los pares de cadenas Nombrey Valor, separados por dos puntos.

Separe lospares de cadena de nombre y valor mediante (por ejemplo, Name1:value1\nName2:value2).

-binary Da formato a los archivos de salida como binarios en lugar de codificados en base64.
-policyserver <policyserver> Ldap: <path>
Inserte el IDENTIFICADOR URI o el identificador único de un equipo que ejecute el servicio web de directiva de inscripción de certificados.

Para especificar que desea usar un archivo de solicitud mediante la exploración, simplemente use un signo menos (-) para <policyserver> .

-config <ConfigString> Procesa la operación mediante la CA especificada en la cadena de configuración, que es CAHostName\CAName. Para una conexión https:\\, especifique el URI del servidor de inscripción. Para la CA del almacén de la máquina local, use un signo menos (-).
-anonymous Use credenciales anónimas para los servicios web de inscripción de certificados.
-kerberos Use las credenciales de Kerberos (dominio) para los servicios web de inscripción de certificados.
-clientcertificate <ClientCertId> Puede reemplazar por una <ClientCertId> huella digital de certificado, CN, EKU, plantilla, correo electrónico, UPN o la nueva name=value sintaxis.
-username <username> Se usa con los servicios web de inscripción de certificados. Puede sustituir por <username> el nombre SAM o el valor <username> Esta opción se usa con la -p opción .
-p <password> Se usa con los servicios web de inscripción de certificados. Sustituya <password> por la contraseña del usuario real. Esta opción se usa con la -username opción .
-user Configura el contexto -user para una nueva solicitud de certificado o especifica el contexto para una aceptación de certificado. Este es el contexto predeterminado, si no se especifica ninguno en inf o plantilla.
-machine Configura una nueva solicitud de certificado o especifica el contexto de una aceptación de certificado para el contexto de la máquina. Para las nuevas solicitudes, debe ser coherente con la clave INF machineKeyset y el contexto de la plantilla. Si no se especifica esta opción y la plantilla no establece un contexto, el valor predeterminado es el contexto de usuario.
-crl Incluye listas de revocación de certificados (CRL) en la salida del archivo PKCS #7 codificado en base64 especificado por o en el archivo codificado en certchainfileout base64 especificado por requestfileout .
-rpc Indica a Servicios de certificados de Active Directory (AD CS) que use una conexión de servidor de llamada a procedimiento remoto (RPC) en lugar de COM distribuido.
-adminforcemachine Use el servicio de claves o la suplantación para enviar la solicitud desde el contexto del sistema local. Requiere que el usuario que invoca esta opción sea miembro de Administradores locales.
-renewonbehalfof Envíe una renovación en nombre del sujeto identificado en el certificado de firma. Esto establece CR_IN_ROBO al llamar al método ICertRequest::Submit
-f Forzar la sobrescritura de los archivos existentes. Esto también omite las plantillas de almacenamiento en caché y la directiva.
-q Use el modo silencioso; suprimir todos los mensajes interactivos.
-unicode Escribe la salida Unicode cuando la salida estándar se redirige o canalizó a otro comando, lo que ayuda cuando se invoca desde Windows PowerShell scripts.
-unicodetext Envía la salida Unicode al escribir blobs de datos codificados en texto base64 en archivos.

Formatos

Formatos Descripción
requestfilein Nombre de archivo de entrada binario o codificado en Base64: solicitud de certificado PKCS #10, solicitud de certificado cms, solicitud de renovación de certificado PKCS #7, certificado X.509 para certificación cruzada o solicitud de certificado con formato de etiqueta KeyGen.
requestfileout Nombre del archivo de salida codificado en Base64.
certfileout Nombre de archivo X-509 codificado en Base64.
PKCS10fileout Solo para su uso certreq -policy con el parámetro . Nombre de archivo de salida PKCS10 codificado en Base64.
certchainfileout Nombre de archivo de PKCS #7 con codificación Base64.
fullresponsefileout Nombre de archivo de respuesta completa codificado en Base64.
policyfilein Solo para su uso certreq -policy con el parámetro . Archivo INF que contiene una representación textual de las extensiones usadas para calificar una solicitud.

Recursos adicionales

Los artículos siguientes contienen ejemplos de uso de certreq:

El comando certreq se puede usar para solicitar certificados de una entidad de certificación (CA), para recuperar una respuesta a una solicitud anterior de una CA, para crear una nueva solicitud desde un archivo .inf, para aceptar e instalar una respuesta a una solicitud, para construir una solicitud de certificación cruzada o subordinación calificada a partir de un certificado o solicitud de ca existentes. y para firmar una solicitud de certificación cruzada o subordinación calificada.

Importante

Es posible que las versiones anteriores del comando certreq no proporcionen todas las opciones descritas aquí. Para ver las opciones admitidas en función de versiones específicas de certreq, ejecute la opción de ayuda de la línea de comandos, certreq -v -? .

El comando certreq no admite la creación de una nueva solicitud de certificado basada en una plantilla de atestación de clave cuando se encuentra en un entorno CEP/CES.

Advertencia

El contenido de este tema se basa en la configuración predeterminada de Windows Server; por ejemplo, establecer la longitud de la clave en 2048, seleccionar Proveedor Storage de claves de software de Microsoft como CSP y usar Algoritmo hash seguro 1 (SHA1). Evalúe estas selecciones según los requisitos de la directiva de seguridad de su empresa.

Sintaxis

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]

Parámetros

Parámetro Descripción
-submit Envía una solicitud a una entidad de certificación.
-retrieve <requestid> Recupera una respuesta a una solicitud anterior de una entidad de certificación.
-new Crea una nueva solicitud a partir de un archivo .inf.
-accept Acepta e instala una respuesta a una solicitud de certificado.
-policy Establece la directiva para una solicitud.
-sign Firma una solicitud de certificación cruzada o subordinación calificada.
-enroll Inscribe o renueva un certificado.
-? Muestra una lista de sintaxis, opciones y descripciones de certreq.
<parameter> -? Muestra ayuda para el parámetro especificado.
-v -? Muestra una lista detallada de la sintaxis, las opciones y las descripciones de certreq.

Ejemplos

certreq -submit

Para enviar una solicitud de certificado simple:

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

Observaciones

  • Este es el parámetro certreq.exe predeterminado. Si no se especifica ninguna opción en el símbolo de la línea de comandos, certreq.exe intentar enviar una solicitud de certificado a una entidad de certificación. Debe especificar un archivo de solicitud de certificado al usar la opción –submit. Si se omite este parámetro, aparece una ventana común Abrir archivo, que le permite seleccionar el archivo de solicitud de certificado adecuado.

  • Para solicitar un certificado especificando el atributo SAN, consulte la sección How to use the certreq.exe utility to create and submit a certificate request del artículo Microsoft Knowledge Base 931351 How to add a Subject Alternative Name to a secure LDAP certificate (Cómo agregar un nombre alternativo del firmante a un certificado LDAPseguro).

certreq -retrieve

Para recuperar el identificador de certificado 20 y crear un archivo de certificado (.cer), denominado MyCertificate:

certreq -retrieve 20 MyCertificate.cer

Observaciones

  • Use certreq -retrieve requestid para recuperar el certificado después de que la entidad de certificación lo haya emitido. Requestid PKC puede ser un prefijo decimal o hexadecimal con un prefijo 0x y puede ser un número de serie de certificado sin prefijo 0x. También puede usarlo para recuperar cualquier certificado emitido alguna vez por la entidad de certificación, incluidos los certificados revocados o expirados, sin tener en cuenta si la solicitud del certificado estaba alguna vez en estado pendiente.

  • Si envía una solicitud a la entidad de certificación, el módulo de directivas de la entidad de certificación podría dejar la solicitud en un estado pendiente y devolver el identificador de solicitud al llamador certreq para su presentación. Finalmente, el administrador de la entidad de certificación emitirá el certificado o denegará la solicitud.

certreq -new

Para crear una nueva solicitud:

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

Estas son algunas de las posibles secciones que se pueden agregar al archivo INF:

[newrequest]

Esta área del archivo INF es obligatoria para las nuevas plantillas de solicitud de certificado y debe incluir al menos un parámetro con un valor .