Partilhar via


certreq

O comando certreq pode ser usado para solicitar certificados de uma autoridade de certificação (CA), para recuperar uma resposta a uma solicitação anterior de uma CA, para criar uma nova solicitação a partir de um arquivo .inf, para aceitar e instalar uma resposta a uma solicitação, para construir uma solicitação de subordinação qualificada ou de certificação cruzada a partir de um certificado ou solicitação de CA existente, e assinar uma certificação cruzada ou um pedido de subordinação qualificada.

Importante

As versões anteriores do comando certreq podem não fornecer todas as opções descritas aqui. Para ver as opções suportadas com base em versões específicas do certreq, execute a opção de ajuda da linha de comando, certreq -v -?.

O comando certreq não suporta a criação de uma nova solicitação de certificado com base em um modelo de Atestado de Chave quando em um ambiente CEP/CES.

Advertência

O conteúdo deste tópico baseia-se nas configurações padrão do Windows Server; por exemplo, definindo o comprimento da chave como 2048, selecionando Microsoft Software Key Storage Provider como CSP e usando Secure Hash Algorithm 1 (SHA1). Avalie essas seleções em relação aos requisitos da política de segurança da sua empresa.

Sintaxe

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 Descrição
-Enviar Envia uma solicitação a uma autoridade de certificação.
-recuperar <requestid> Recupera uma resposta a uma solicitação anterior de uma autoridade de certificação.
-Novo Cria uma nova solicitação a partir de um arquivo .inf.
-aceitar Aceita e instala uma resposta a uma solicitação de certificado.
-política Define a política para uma solicitação.
-sinal Assina uma solicitação de certificação cruzada ou subordinação qualificada.
-inscrever-se Inscreve-se ou renova um certificado.
-? Exibe uma lista de sintaxe, opções e descrições certreq.
<parameter> -? Exibe a ajuda para o parâmetro especificado.
-v -? Exibe uma lista detalhada da sintaxe, opções e descrições certreq.

Exemplos

certreq -submit

Para enviar uma solicitação de certificado básico:

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

Observações

  • Este é o parâmetro certreq.exe padrão. Se nenhuma opção for especificada no prompt de linha de comando, certreq.exe tentará enviar uma solicitação de certificado a uma autoridade de certificação. Você deve especificar um arquivo de solicitação de certificado ao usar a opção –submit. Se esse parâmetro for omitido, uma janela de abertura de arquivo de comum será exibida, permitindo que você selecione o arquivo de solicitação de certificado apropriado.

  • Para solicitar um certificado especificando o atributo SAN, consulte a seção Como usar o utilitário certreq.exe para criar e enviar uma solicitação de certificado do artigo da Base de Dados de Conhecimento Microsoft 931351 Como adicionar um nome alternativo de entidade a um certificado LDAP seguro.

certreq -retrieve

Para recuperar o ID de certificado 20 e criar um arquivo de certificado (.cer), chamado MyCertificate:

certreq -retrieve 20 MyCertificate.cer

Observações

  • Use certreq -retrieve requestid para recuperar o certificado depois que a autoridade de certificação o emitiu. O requestid PKC pode ser decimal ou hexadecimal com prefixo 0x e pode ser um número de série de certificado sem prefixo 0x. Você também pode usá-lo para recuperar qualquer certificado que já tenha sido emitido pela autoridade de certificação, incluindo certificados revogados ou expirados, sem considerar se a solicitação do certificado já esteve no estado pendente.

  • Se você enviar uma solicitação à autoridade de certificação, o módulo de política da autoridade de certificação poderá deixar a solicitação em um estado pendente e retornar a de solicitação para o chamador certreq para exibição. Eventualmente, o administrador da autoridade de certificação emite o certificado ou nega a solicitação.

certreq -new

Para criar uma nova solicitação:

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

A seguir estão algumas das seções possíveis que podem ser adicionadas ao arquivo INF:

[novopedido]

Esta área do arquivo INF é obrigatória para qualquer novo modelo de solicitação de certificado e deve incluir pelo menos um parâmetro com um valor.

Chave1 Descrição Valor2 Exemplo
Assunto Vários aplicativos dependem das informações do assunto em um certificado. Recomendamos especificar um valor para essa chave. Se o assunto não estiver definido aqui, recomendamos que você inclua um nome de entidade como parte da extensão de certificado de nome alternativo de entidade. Valores de cadeia de caracteres de Nome Distinto Relativo Assunto = CN=computer1.contoso.com Assunto=CN=John Smith,CN=Usuários,DC=Contoso,DC=com
Exportável Se definido como TRUE, a chave privada pode ser exportada com o certificado. Para garantir um alto nível de segurança, as chaves privadas não devem ser exportáveis; No entanto, em alguns casos, pode ser necessário se vários computadores ou usuários precisarem compartilhar a mesma chave privada. true | false Exportable = TRUE. As chaves CNG podem distinguir entre isso e texto simples exportável. As chaves CAPI1 não podem.
ExportableEncrypted Especifica se a chave privada deve ser definida como exportável. true | false ExportableEncrypted = true

Dica: Nem todos os tamanhos de chave pública e algoritmos funcionam com todos os algoritmos de hash. O CSP especificado também deve suportar o algoritmo de hash especificado. Para ver a lista de algoritmos de hash suportados, você pode executar o comando: certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo

HashAlgorithm Algoritmo de hash a ser usado para esta solicitação. Sha256, sha384, sha512, sha1, md5, md4, md2 HashAlgorithm = sha1. Para ver a lista de algoritmos de hash suportados, use: certutil -oid 1 | findstr pwszCNGAlgid findstr /v CryptOIDInfo
Algoritmo de chave O algoritmo usado pelo provedor de serviços para gerar um par de chaves pública e privada. RSA, DH, DSA, ECDH_P256, ECDH_P521, ECDSA_P256, ECDSA_P384, ECDSA_P521 KeyAlgorithm = RSA
Contentor de chaves Não recomendamos definir esse parâmetro para novas solicitações em que um novo material de chave é gerado. O contêiner de chaves é gerado e mantido automaticamente pelo sistema.

Para solicitações em que o material de chave existente deve ser usado, esse valor pode ser definido como o nome do contêiner de chave da chave existente. Use o comando certutil –key para exibir a lista de contêineres de chave disponíveis para o contexto da máquina. Use o comando certutil –key –user para o contexto do usuário atual.

Valor aleatório da cadeia de caracteres

Dica: Use aspas duplas em torno de qualquer valor de chave INF que tenha espaços em branco ou caracteres especiais para evitar possíveis problemas de análise INF.

KeyContainer = {C347BD28-7F69-4090-AA16-BC58CF4D749C}
Comprimento da chave Define o comprimento da chave pública e privada. O comprimento da chave tem um impacto no nível de segurança do certificado. Maior comprimento de chave geralmente fornece um nível de segurança mais alto; no entanto, alguns aplicativos podem ter limitações em relação ao comprimento da chave. Qualquer comprimento de chave válido suportado pelo provedor de serviços de criptografia. KeyLength = 2048
KeySpec Determina se a chave pode ser usada para assinaturas, para o Exchange (criptografia) ou para ambos. AT_NONE, AT_SIGNATURE, AT_KEYEXCHANGE KeySpec = AT_KEYEXCHANGE
Utilização de Chaves Define para que a chave de certificado deve ser usada.
  • 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

Dica: Vários valores usam um separador de símbolo de pipe (|). Certifique-se de usar aspas duplas ao usar vários valores para evitar problemas de análise INF. Os valores mostrados são valores hexadecimais (decimais) para cada definição de bit. Sintaxe mais antiga também pode ser usada: um único valor hexadecimal com vários bits definidos, em vez da representação simbólica. Por exemplo, KeyUsage = 0xa0.

KeyUsageProperty Recupera um valor que identifica a finalidade específica para a qual uma chave privada pode ser usada.
  • 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 Essa chave é importante quando você precisa criar certificados que pertencem à máquina e não a um usuário. O material de chave gerado é mantido no contexto de segurança da entidade de segurança (conta de usuário ou computador) que criou a solicitação. Quando um administrador cria uma solicitação de certificado em nome de um computador, o material da chave deve ser criado no contexto de segurança da máquina e não no contexto de segurança do administrador. Caso contrário, a máquina não poderia acessar sua chave privada, pois estaria no contexto de segurança do administrador. true | false. O padrão é "false". MachineKeySet = true
Não Antes De Especifica uma data ou data e hora antes das quais a solicitação não pode ser emitida. NotBefore pode ser usado com ValidityPeriod e ValidityPeriodUnits. Data, data e hora NotBefore = 7/24/2012 10:31 AM

Dica:NotBefore e NotAfter são apenas para RequestType=cert. A análise de data tenta diferenciar a localidade. Usar nomes de mês desambiguará e deve funcionar em todas as localidades.

NãoDepois Especifica uma data ou data e hora após as quais a solicitação não pode ser emitida. NotAfter não pode ser usado com ValidityPeriod ou ValidityPeriodUnits. Data, data e hora NotAfter = 9/23/2014 10:31 AM

Dica:NotBefore e NotAfter são apenas para RequestType=cert. A análise de data tenta diferenciar a localidade. Usar nomes de mês desambiguará e deve funcionar em todas as localidades.

Arquivo PrivateKeyArchive A configuração PrivateKeyArchive funciona somente se o RequestType correspondente estiver definido como CMC, pois somente o formato de solicitação Certificate Management Messages over CMS (CMC) permite transferir com segurança a chave privada do solicitante para a CA para arquivamento de chaves. true | false PrivateKeyArchive = true
EncryptionAlgorithm O algoritmo de encriptação a utilizar. As opções possíveis variam, dependendo da versão do sistema operacional e do conjunto de provedores criptográficos instalados. Para ver a lista de algoritmos disponíveis, execute o comando: certutil -oid 2 | findstr pwszCNGAlgid. O CSP especificado usado também deve suportar o algoritmo de criptografia simétrica especificado e o comprimento. EncryptionAlgorithm = 3des
EncryptionLength Comprimento do algoritmo de encriptação a utilizar. Qualquer comprimento permitido pelo EncryptionAlgorithm especificado. EncryptionLength = 128
Nome do provedor O nome do provedor é o nome para exibição do CSP. Se você não souber o nome do provedor do CSP que está usando, execute certutil –csplist a partir de uma linha de comando. O comando exibe os nomes de todos os CSPs disponíveis no sistema local ProviderName = Microsoft RSA SChannel Cryptographic Provider
Tipo de provedor O tipo de provedor é usado para selecionar provedores específicos com base em recursos de algoritmo específicos, como RSA Full. Se você não souber o tipo de provedor do CSP que está usando, execute certutil –csplist a partir de um prompt de linha de comando. O comando exibe o tipo de provedor de todos os CSPs disponíveis no sistema local. ProviderType = 1
RenovaçãoCert Se você precisar renovar um certificado que existe no sistema onde a solicitação de certificado é gerada, você deve especificar seu hash de certificado como o valor para essa chave. O hash de certificado de qualquer certificado disponível no computador onde a solicitação de certificado é criada. Se você não souber o hash do certificado, use o Snap-In MMC de certificados e examine o certificado que deve ser renovado. Abra as propriedades do certificado e veja o atributo Thumbprint do certificado. A renovação do certificado requer um formato de solicitação PKCS#7 ou CMC. RenewalCert = 4EDF274BD2919C6E9EC6A522F0F3B153E9B1582D
Nome do solicitante Faz a solicitação para se inscrever em nome de outra solicitação de usuário. A solicitação também deve ser assinada com um certificado de Agente de Inscrição ou a autoridade de certificação rejeita a solicitação. Use a opção -cert para especificar o certificado do agente de inscrição. O nome do solicitante pode ser especificado para solicitações de certificado se o RequestType estiver definido como PKCS#7 ou CMC. Se o RequestType estiver definido como PKCS#10, essa chave será ignorada. O Requestername só pode ser definido como parte do pedido. Não é possível manipular o Requestername em uma solicitação pendente. Domain\User Requestername = Contoso\BSmith
Tipo de solicitação Determina o padrão usado para gerar e enviar a solicitação de certificado.
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
Dica: Esta opção indica um certificado autoassinado ou autoemitido. Ele não gera uma solicitação, mas sim um novo certificado e, em seguida, instala o certificado. Auto-assinado é o padrão. Especifique um certificado de assinatura usando a opção –cert para criar um certificado autoemitido que não seja autoassinado.
RequestType = CMC
SecurityDescritor Contém as informações de segurança associadas a objetos protegíveis. Para a maioria dos objetos protegíveis, você pode especificar o descritor de segurança de um objeto na chamada de função que cria o objeto. Strings baseadas em linguagem de definição do descritor de segurança.

Dica: Isso é relevante apenas para chaves de cartão não inteligente de contexto de máquina.

SecurityDescriptor = D:P(A;;GA;;;SY)(A;;GA;;;BA)
AlternateSignatureAlgorithm Especifica e recupera um valor booleano que indica se o identificador de objeto do algoritmo de assinatura (OID) para uma solicitação PKCS#10 ou assinatura de certificado é discreto ou combinado. true | false AlternateSignatureAlgorithm = false

Para uma assinatura RSA, false indica uma Pkcs1 v1.5, enquanto true indica uma assinatura v2.1.

Automática Por padrão, essa opção permite que o CSP acesse a área de trabalho interativa do usuário e solicite informações como um PIN de cartão inteligente do usuário. Se essa chave estiver definida como TRUE, o CSP não deve interagir com a área de trabalho e será impedido de exibir qualquer interface do usuário para o usuário. true | false Silent = true
SMIME Se esse parâmetro for definido como TRUE, uma extensão com o valor do identificador de objeto 1.2.840.113549.1.9.15 será adicionada à solicitação. O número de identificadores de objeto depende da versão do sistema operacional instalada e da capacidade CSP, que se refere a algoritmos de criptografia simétrica que podem ser usados por aplicativos Secure Multipurpose Internet Mail Extensions (S/MIME), como o Outlook. true | false SMIME = true
UseExistingKeySet Esse parâmetro é usado para especificar que um par de chaves existente deve ser usado na criação de uma solicitação de certificado. Se essa chave estiver definida como TRUE, você também deverá especificar um valor para a chave RenewalCert ou o nome KeyContainer. Você não deve definir a chave exportável porque não pode alterar as propriedades de uma chave existente. Nesse caso, nenhum material de chave é gerado quando a solicitação de certificado é criada. true | false UseExistingKeySet = true
Proteção de chaves Especifica um valor que indica como uma chave privada é protegida antes do 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 um valor booleano que indica se as extensões e atributos padrão estão incluídos na solicitação. Os padrões são representados por seus identificadores de objeto (OIDs). true | false SuppressDefaults = true
Nome Amigável Um nome amigável para o novo certificado. Texto FriendlyName = Server1
ValidadePeríodoUnidades Especifica muitas unidades que devem ser usadas com ValidityPeriod. Nota: É utilizado apenas quando a request type=cert. Numérico ValidityPeriodUnits = 3
ValidadePeríodo ValidityPeriod deve ser um período de tempo plural em inglês dos EUA. Nota: Isso é usado somente quando a solicitação type=cert. Years | Months | Weeks | Days | Hours | Minutes | Seconds ValidityPeriod = Years

1Parâmetro à esquerda do sinal de igual (=)

2Parâmetro à direita do sinal de igual (=)

[Extensões]

Esta secção é opcional.

Extensão OID Definição Exemplo
2.5.29.17 2.5.29.17 = {texto}
continuar continue = UPN=User@Domain.com&
continuar continue = EMail=User@Domain.com&
continuar continue = DNS=host.domain.com&
continuar continue = DirectoryName=CN=Name,DC=Domain,DC=com&
continuar continue = URL=<http://host.domain.com/default.html&>
continuar continue = IPAddress=10.0.0.1&
continuar continue = RegisteredId=1.2.3.4.5&
continuar continue = 1.2.3.4.6.1={utf8}String&
continuar continue = 1.2.3.4.6.2={octet}AAECAwQFBgc=&
continuar continue = 1.2.3.4.6.2={octet}{hex}00 01 02 03 04 05 06 07&
continuar continue = 1.2.3.4.6.3={asn}BAgAAQIDBAUGBw==&
continuar 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}
continuar continue = 1.3.6.1.5.5.7
continuar 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
Tipo de solicitação
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
Utilização de Chaves
  • 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)
Proteção de chaves
  • NCRYPT_UI_NO_PROTECTION_FLAG -- 0
  • NCRYPT_UI_PROTECT_KEY_FLAG -- 1
  • NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG -- 2
SubjectNameFlags modelo
  • 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)

Observação

SubjectNameFlags permite que o arquivo INF especifique quais campos de extensão Subject e SubjectAltName devem ser preenchidos automaticamente pelo certreq com base no usuário atual ou nas propriedades atuais da máquina: nome DNS, UPN e assim por diante. Usar o modelo literal significa que os sinalizadores de nome de modelo são usados. Isso permite que um único arquivo INF seja usado em vários contextos para gerar solicitações com informações de assunto específicas do contexto.

X500NameFlags especifica os sinalizadores a serem passados diretamente para CertStrToName API quando o valor Subject INF keys é convertido em um de Nome deDistinto codificado em ASN.1.

Exemplo

Para criar um arquivo de política (.inf) no Bloco de Notas e salvá-lo 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

No computador para o qual está a solicitar um certificado:

certreq –new requestconfig.inf certrequest.req

Para usar a sintaxe da seção [Strings] para OIDs e outros dados difíceis de interpretar. O novo exemplo de sintaxe {text} para a extensão EKU, que usa uma lista separada por vírgulas de OIDs:

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

Para especificar um SAN (Nome Alternativo da Entidade), adicione-o na seção [Extensões] do INF. Por exemplo:

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

Neste exemplo, 2.5.29.17 é o OID que define a SAN. Para especificar várias SANs, é usada a extensão _continue_ OID, que permite separar e especificar cada extensão SAN.

certreq -accept

O parâmetro –accept vincula a chave privada gerada anteriormente com o certificado emitido e remove a solicitação de certificado pendente do sistema onde o certificado é solicitado (se houver uma solicitação correspondente).

Para aceitar manualmente um certificado:

certreq -accept certnew.cer

Advertência

O uso do parâmetro -accept com as opções -user e –machine indica se o certificado de instalação deve ser instalado em do usuário ou máquina contexto. Se houver uma solicitação pendente em qualquer um dos contextos que corresponda à chave pública que está sendo instalada, essas opções não serão necessárias. Se não houver nenhum pedido pendente, então um deles deve ser especificado.

certreq -policy

O arquivo policy.inf é um arquivo de configuração que define as restrições aplicadas a uma certificação de autoridade de certificação, quando uma subordinação qualificada é definida.

Para criar uma solicitação de certificado cruzado:

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

Usar certreq -policy sem qualquer outro parâmetro abre uma janela de diálogo, permitindo que você selecione o arquivo solicitado (.req, .cmc, .txt, .der, .cer ou .crt). Depois de selecionar o arquivo solicitado e clicar em Abrir, outra janela de diálogo será aberta, permitindo que você selecione o arquivo policy.inf.

Exemplos

Encontre um exemplo do arquivo policy.inf no de sintaxe CAPolicy.inf do.

certreq -sign

Para criar uma nova solicitação de certificado, assine-a e envie-a:

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

Observações

  • Usando certreq -sign sem qualquer outro parâmetro, ele abre uma janela de diálogo para que você possa selecionar o arquivo solicitado (req, cmc, txt, der, cer ou crt).

  • A assinatura da solicitação de subordinação qualificada pode exigir Administrador Corporativo credenciais. Esta é uma prática recomendada para a emissão de certificados de assinatura para subordinação qualificada.

  • O certificado usado para assinar a solicitação de subordinação qualificada usa o modelo de subordinação qualificada. Os Administradores Empresariais têm de assinar o pedido ou conceder permissões de utilizador aos indivíduos que assinam o certificado.

  • Poderá ser-lhe pedido que pessoal adicional assine o pedido CMC depois de si. Isso depende do nível de garantia associado à subordinação qualificada.

  • Se a autoridade de certificação pai da autoridade de certificação subordinada qualificada que você está instalando estiver offline, você deverá obter o certificado de autoridade de certificação para a autoridade de certificação subordinada qualificada do pai offline. Se a autoridade de certificação pai estiver online, especifique o certificado da autoridade de certificação para a autoridade de certificação subordinada qualificada durante o assistente de de instalação dos Serviços de Certificados de.

certreq -enroll

Você pode usar esse comentário para registrar ou renovar seus certificados.

Exemplos

Para registrar um certificado, usando o modelo WebServer e selecionando o servidor de políticas usando U/I:

certreq -enroll –machine –policyserver * WebServer

Para renovar um certificado usando um número de série:

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

Só é possível renovar certificados válidos. Os certificados expirados não podem ser renovados e devem ser substituídos por um novo certificado.

Opções

Opções Descrição
-qualquer seringa Force ICertRequest::Submit para determinar o tipo de codificação.
-Attrib <attributestring> Especifica o Nome e Valor pares de cadeia de caracteres, separados por dois pontos.

Separe Name e Value pares de cadeia de caracteres usando \n (por exemplo, Name1:value1\nName2:value2).

-binário Formata arquivos de saída como binários em vez de codificados em base64.
-servidor de políticas <policyserver> LDAP: <path>
Insira o URI ou ID exclusivo de um computador que executa o serviço Web Política de Registro de Certificado.

Para especificar que você gostaria de usar um arquivo de solicitação navegando, basta usar um sinal de menos (-) para <policyserver>.

-config <ConfigString> Processa a operação usando a autoridade de certificação especificada na cadeia de caracteres de configuração, que é CAHostName\CAName. Para uma conexão https:\\, especifique o URI do servidor de registro. Para a autoridade de certificação do armazenamento da máquina local, use um sinal de menos (-).
-anónimo Use credenciais anônimas para serviços Web de Registro de Certificado.
-Kerberos Use credenciais Kerberos (domínio) para serviços Web de Registro de Certificado.
-ClientCertificate <ClientCertId> Você pode substituir o <ClientCertId> por uma impressão digital de certificado, CN, EKU, modelo, e-mail, UPN ou a nova sintaxe name=value.
-nome de utilizador <username> Usado com serviços Web de Registro de Certificado. Você pode substituir <username> pelo nome SAM ou valor domínio\ usuário. Esta opção é para uso com a opção -p.
-p <password> Usado com serviços Web de Registro de Certificado. Substitua <password> pela senha do usuário real. Esta opção é para uso com a opção -username.
-utilizador Configura o contexto -user para uma nova solicitação de certificado ou especifica o contexto para uma aceitação de certificado. Este é o contexto padrão, se nenhum for especificado no INF ou modelo.
-máquina Configura uma nova solicitação de certificado ou especifica o contexto para uma aceitação de certificado para o contexto da máquina. Para novas solicitações, ele deve ser consistente com a chave INF MachineKeyset e o contexto do modelo. Se essa opção não for especificada e o modelo não definir um contexto, o padrão será o contexto do usuário.
-LCR Inclui listas de revogação de certificados (CRLs) na saída para o arquivo PKCS #7 codificado em base64 especificado por certchainfileout ou para o arquivo codificado em base64 especificado por requestfileout.
-RPC Instrui os Serviços de Certificados do Ative Directory (AD CS) a usar uma conexão de servidor de chamada de procedimento remoto (RPC) em vez de COM distribuído.
-adminforcemachine Use o Serviço de Chave ou representação para enviar a solicitação do contexto do Sistema Local. Requer que o usuário que invoca essa opção seja membro de Administradores Locais.
-renovaçãoem nome de Apresentar uma renovação em nome da entidade identificada no certificado de assinatura. Isso define CR_IN_ROBO ao chamar método ICertRequest::Submit
-f Força os arquivos existentes a serem substituídos. Isso também ignora modelos e políticas de cache.
-q Use o modo silencioso; suprimir todos os prompts interativos.
-Unicode Grava a saída Unicode quando a saída padrão é redirecionada ou canalizada para outro comando, o que ajuda quando invocada a partir de scripts do Windows PowerShell.
-UnicodeText Envia saída Unicode ao escrever blobs de dados codificados de texto base64 para arquivos.

Formatos

Formatos Descrição
requestfilein Nome do arquivo de entrada binário ou codificado em Base64: solicitação de certificado PKCS #10, solicitação de certificado CMS, solicitação de renovação de certificado PKCS #7, certificado X.509 a ser certificado cruzado ou solicitação de certificado de formato de tag KeyGen.
requestfileout Nome do arquivo de saída codificado em Base64.
certfileout Nome do arquivo X-509 codificado em Base64.
PKCS10fileout Para utilização apenas com o parâmetro certreq -policy. Nome do arquivo de saída PKCS10 codificado em Base64.
certchainfileout Nome do arquivo PKCS #7 codificado em Base64.
fullresponsefileout Nome do arquivo de resposta completo codificado em Base64.
policyfilein Para utilização apenas com o parâmetro certreq -policy. INF contendo uma representação textual das extensões usadas para qualificar uma solicitação.

Recursos adicionais

Os seguintes artigos contêm exemplos de uso do certreq: