Este guia mostra como gerar um CSR (Certificate Signing Request) no Windows usando as ferramentas que já vêm com o sistema operativo.
O CSR é um bloco de texto PKCS #10 que transporta a sua chave pública e os detalhes do titular para a Autoridade Certificadora, que o assina e devolve o seu certificado SSL/TLS. A chave privada correspondente permanece na máquina que gera o pedido.
O Windows oferece três formas nativas de criar um CSR, e cada uma delas é abordada abaixo. Escolha a que melhor se adapta ao seu fluxo de trabalho:
- O snap-in Certificates da MMC (gráfico), que o guia através de um assistente e permite adicionar um Subject Alternative Name. Este é o caminho abordado no tutorial original, e o que a maioria dos utilizadores prefere.
- A ferramenta de linha de comandos certreq.exe com um ficheiro INF, que é programável, suporta SAN e é o método padrão no Windows Server.
- O binário OpenSSL para Windows (uma transferência separada), que produz o CSR exatamente da mesma forma que os administradores Linux o fazem.
Se gere um servidor web com o seu próprio fluxo de trabalho de CSR, use esse em vez dos passos genéricos do Windows: consulte os guias dedicados para IIS e Microsoft Exchange. Os passos abaixo abrangem o Windows 10, Windows 11 e Windows Server 2016 a 2025; inicie sessão com uma conta que tenha direitos de administrador local antes de começar.
Gerar um CSR com o snap-in Certificates da MMC
A Microsoft Management Console (MMC) vem incluída em todas as versões suportadas do Windows e disponibiliza um assistente Create Custom Request que consegue criar um CSR com uma entrada SAN. O assistente armazena a nova chave privada no repositório de certificados do Computador Local, para que qualquer serviço Windows na máquina (IIS, ADFS, RD Gateway, RDP) possa usar o certificado emitido assim que este for instalado.
Passo 1: Abrir o snap-in Certificates da MMC para o Computador Local
Prima Win + R, digite o comando abaixo e prima Enter:
mmc
Na consola MMC vazia, abra File > Add/Remove Snap-in. Selecione Certificates na lista à esquerda, clique em Add, escolha Computer account, clique em Next, mantenha Local computer selecionado e clique em Finish e, depois, em OK. O snap-in Certificates está agora ligado ao repositório do Computador Local, que é de onde os serviços Windows leem.
Passo 2: Iniciar um pedido de certificado personalizado
No painel esquerdo, expanda Certificates (Local Computer) e clique com o botão direito em Personal. Escolha All Tasks > Advanced Operations > Create Custom Request. O assistente Certificate Enrollment abre-se. Clique em Next.
No ecrã Select Certificate Enrollment Policy, selecione Proceed without enrollment policy em Custom Request e clique em Next. Isto indica ao Windows para criar um CSR autónomo para uma CA externa, em vez de se registar num modelo interno do Active Directory Certificate Services.
Passo 3: Escolher o modelo e o formato do pedido
No ecrã Custom request, defina Template como (No template) CNG key, mantenha Request format em PKCS #10 e clique em Next. O CNG (Cryptography Next Generation) é o fornecedor de chaves moderno do Windows e é a escolha correta para novos pedidos; a opção CSP legada só é necessária para compatibilidade com aplicações mais antigas.
No ecrã Certificate Information, expanda a seta Details junto à entrada do pedido e clique em Properties. A caixa de diálogo Certificate Properties é onde se configura o restante do CSR.
Passo 4: Preencher o titular e os Subject Alternative Names
No separador General, digite um nome amigável e uma descrição opcional para que consiga identificar o pedido pendente mais tarde no repositório de certificados.
Mude para o separador Subject. Em Subject name, mantenha Type em Full DN apenas se souber o que está a fazer; para a maioria dos pedidos, adicione cada componente um a um usando o menu suspenso Type. Para cada atributo abaixo, escolha o tipo, digite o valor e clique em Add:
- Common Name: o nome de domínio totalmente qualificado que pretende proteger, por exemplo www.seudominio.com. Para um certificado wildcard, coloque um asterisco antes do domínio principal, por exemplo *.seudominio.com.
- Country: o código de país ISO de duas letras, por exemplo US, GB ou DE.
- State: o nome completo do estado ou província (por exemplo California, não CA).
- Locality: o nome completo da cidade onde a sua organização está registada (por exemplo San Jose, não SJ).
- Organization: a designação legal da sua empresa, exatamente como registada. Obrigatório para certificados OV e EV. Para certificados de Validação de Domínio (DV), este campo é ignorado, pelo que qualquer valor de preenchimento funciona.
Ignore o atributo Email. A RFC 5280 estabelece que os novos certificados com um endereço de email devem colocá-lo na extensão Subject Alternative Name (como rfc822Name), e não no Distinguished Name do titular, e as CAs públicas podem remover um valor de email do titular de um certificado TLS. Ao não o incluir, mantém o CSR limpo.
Na secção Alternative name do mesmo separador, defina Type como DNS e adicione todos os nomes de anfitrião que o certificado deve cobrir, um clique em Add por entrada. Liste sempre também o Common Name aqui: browsers, .NET, Java, Go e outros clientes TLS modernos validam o nome de anfitrião estritamente com base na lista SAN e ignoram o Common Name. Um certificado web típico usa duas entradas DNS:
- seudominio.com
- www.seudominio.com
Para um pedido wildcard, adicione o wildcard e o domínio principal: *.seudominio.com e seudominio.com.
Passo 5: Configurar a chave e a assinatura
Mude para o separador Private Key e expanda cada secção, uma de cada vez.
- Cryptographic Service Provider: mantenha selecionado o padrão RSA, Microsoft Software Key Storage Provider. Este é o fornecedor CNG moderno para chaves RSA.
- Key options: defina Key size como 2048 (o mínimo atual exigido pelas CAs públicas). Escolha 3072 ou 4096 apenas se a sua política exigir uma chave maior; a contrapartida é um handshake TLS ligeiramente mais lento. Ative Make private key exportable se quiser ter a opção de fazer backup da chave ou mover o certificado emitido para outro servidor.
- Select Hash Algorithm: na secção Select hash algorithm, escolha sha256. O SHA-1 já não é aceite por CAs públicas e o SHA-256 é o padrão moderno. Deixe desativada a caixa Use alternate signature format.
Clique em OK para fechar a caixa de diálogo de propriedades e, depois, clique em Next no assistente.
Passo 6: Guardar o ficheiro CSR
No ecrã Where do you want to save the offline request?, defina File format como Base 64 (as CAs esperam PEM codificado em base64, não binário). Clique em Browse, escolha uma pasta que consiga encontrar mais tarde (uma pasta dedicada C:certs ou o Ambiente de Trabalho é mais fácil do que o caminho padrão do Windows), dê ao ficheiro um nome com extensão .req ou .txt, e clique em Save. Clique em Finish para gravar o CSR.
O assistente grava o CSR no ficheiro e armazena a chave privada correspondente em Certificates (Local Computer) > Certificate Enrollment Requests. Não elimine esse pedido pendente: quando a CA devolver o certificado emitido, o Windows fará automaticamente a associação com a chave que está à espera.
Passo 7: Copiar o CSR e submetê-lo à CA
Abra o ficheiro guardado no Notepad. Deverá ver um bloco semelhante a este:
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDXjCCAkYCAQAwgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh
... (many lines of base64) ...
-----END NEW CERTIFICATE REQUEST-----
Selecione o bloco inteiro, incluindo as linhas BEGIN NEW CERTIFICATE REQUEST e END NEW CERTIFICATE REQUEST com os cinco hífenes, copie-o e cole-o no campo CSR do seu formulário de encomenda SSL.
Gerar um CSR com certreq.exe e um ficheiro INF
O utilitário de linha de comandos certreq.exe vem incluído em todas as versões do Windows Server e também está presente no cliente Windows 10 e 11. É o método correto quando pretende automatizar a criação de CSRs, definir parâmetros de chave incomuns ou criar o pedido remotamente numa sessão que não consegue executar a MMC. O processo tem três partes: escrever um ficheiro INF de pedido, executar certreq -new para gerar o CSR, e depois submeter o CSR à sua CA.
Passo 1: Criar o ficheiro INF do pedido
Abra o Notepad como Administrador e guarde o ficheiro abaixo como request.inf. Edite a linha Subject e as entradas DNS em [Extensions] para corresponderem ao seu domínio:
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=www.yourdomain.com, O=Your Company, L=San Jose, S=California, C=US"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
HashAlgorithm = SHA256
[EnhancedKeyUsageExtension]
OID = 1.3.6.1.5.5.7.3.1
[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=www.yourdomain.com&"
_continue_ = "dns=yourdomain.com"
Notas sobre os valores:
- Subject: uma única linha com os componentes separados por vírgulas. Use o código de país ISO de duas letras em C=, e escreva os nomes do estado e da cidade por extenso.
- KeyLength: mínimo 2048. Defina 3072 ou 4096 se a sua política exigir uma chave maior.
- Exportable = TRUE: permite exportar a chave privada juntamente com o certificado emitido (para backup ou para instalação num segundo servidor). Defina como FALSE se quiser que a chave fique fixa a esta máquina.
- MachineKeySet = TRUE: armazena a chave no repositório do Computador Local, que é de onde serviços como o IIS leem. Mantenha isto ativado para cargas de trabalho de servidor.
- HashAlgorithm = SHA256: assina o pedido com SHA-256, o padrão moderno. Exemplos mais antigos por vezes usam SHA-1 por defeito, que já não é aceite por CAs públicas.
- 2.5.29.17: o OID para Subject Alternative Name. Adicione uma linha _continue_ por nome de anfitrião; todas as linhas exceto a última devem terminar com o separador &. Liste aqui também o seu Common Name, porque os clientes TLS validam com base na lista SAN.
Passo 2: Gerar o CSR
Abra uma Command Prompt ou PowerShell elevada, mude para a pasta que contém request.inf, e execute:
certreq -new request.inf request.csr
A ferramenta cria a chave privada no repositório do Computador Local e grava o pedido PKCS #10 em request.csr. Abra o ficheiro, copie o bloco completo desde BEGIN NEW CERTIFICATE REQUEST até END NEW CERTIFICATE REQUEST, e cole-o no seu formulário de encomenda.
Quando a CA devolver o certificado emitido, conclua a associação com:
certreq -accept certnew.cer
Isto associa o certificado emitido à chave privada que estava à espera no repositório, após o que o certificado fica disponível para qualquer serviço Windows que dele necessite.
Gerar um CSR no Windows com OpenSSL
O Windows não inclui o OpenSSL, mas está disponível uma compilação mantida para Windows na Shining Light Productions. O fluxo do OpenSSL é idêntico ao do Linux e produz uma chave e um CSR como dois ficheiros separados, o que é útil se planear implementar o certificado numa plataforma que não usa o repositório de certificados do Windows (por exemplo, um proxy reverso de terceiros, Tomcat, ou uma aplicação personalizada).
Instale o pacote Win64 OpenSSL Light (o instalador comum é suficiente para o trabalho com CSR) e, quando a instalação perguntar, copie as DLLs do OpenSSL para o diretório bin do OpenSSL, em vez de para a pasta de sistema do Windows. Abra a Command Prompt ou o PowerShell e confirme que o OpenSSL está no path:
openssl version
Se o comando não for encontrado, adicione a pasta de instalação (normalmente C:Program FilesOpenSSL-Win64bin) ao seu PATH, ou chame o openssl com o caminho completo. Em seguida, gere o CSR e a chave com um único comando:
openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr -subj "/C=US/ST=California/L=San Jose/O=Your Company/CN=www.yourdomain.com" -addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"
O que faz cada opção:
- -newkey rsa:2048 cria uma nova chave RSA de 2048 bits. Use rsa:4096 para uma chave maior se a sua política assim o exigir.
- -nodes grava a chave privada sem palavra-passe, para que o serviço que a consome a possa ler no arranque sem pedir confirmação. O OpenSSL 3.x renomeou esta opção para -noenc; -nodes ainda funciona, mas é considerada obsoleta.
- -keyout e -out nomeiam o ficheiro da chave e o ficheiro do CSR.
- -subj fornece o titular diretamente na linha de comandos, para que o OpenSSL não pare para colocar perguntas interativas.
- -addext “subjectAltName=…” adiciona a lista SAN. Inclua também aqui o Common Name.
O OpenSSL 3.x assina o CSR com SHA-256 por defeito, pelo que não é necessária nenhuma opção adicional de digest. Note o cabeçalho diferente: o OpenSSL escreve -----BEGIN CERTIFICATE REQUEST-----, enquanto o assistente da MMC e o certreq escrevem -----BEGIN NEW CERTIFICATE REQUEST-----. Ambos são pedidos PKCS #10 comuns e qualquer CA aceita as duas formas. Trate o ficheiro resultante yourdomain.key como um segredo: quem o possuir pode fazer-se passar pelo certificado.
Verificar o CSR antes de o submeter
Confirme o Common Name, as entradas SAN, o tamanho da chave e o algoritmo de assinatura antes de enviar o pedido à sua CA. Na linha de comandos do Windows, o certutil lê qualquer ficheiro CSR:
certutil -dump request.csr
Se tiver instalado o OpenSSL, o comando equivalente imprime os mesmos detalhes:
openssl req -noout -text -in request.csr
Prefere usar o browser? Cole o conteúdo do pedido no decodificador de CSR da SSL Dragon para ler o titular, a lista SAN, o tamanho da chave e o algoritmo de assinatura. Confirme que o Common Name corresponde ao nome de anfitrião que os clientes vão usar, que todos os nomes necessários aparecem na lista SAN, e que o algoritmo de assinatura é sha256WithRSAEncryption (ou mais forte).
Se preferir gerar o CSR fora do servidor, o nosso Gerador de CSR cria um pedido (com SAN) a partir de um único formulário. A contrapartida é que a chave privada é gerada no seu browser, não no repositório do Windows, pelo que, quando a CA emitir o certificado, combina o certificado e a chave num ficheiro .pfx e importa-o através da consola de gestão de certificados da sua aplicação.
Perguntas Frequentes
Se está a proteger um serviço Windows que lê a partir do repositório de certificados do Computador Local (IIS, ADFS, RDP, RD Gateway, WinRM), use o snap-in da MMC ou o certreq.exe: ambos criam a chave no local certo, para que o certificado emitido fique pronto a ser associado. Se está a preparar um CSR para uma plataforma não-Windows, ou se quiser um ficheiro de chave separado que possa copiar para um servidor Linux ou para um dispositivo de terceiros, use o OpenSSL no Windows. O resultado dos três métodos é o mesmo CSR PKCS #10, que todas as CAs públicas aceitam.
Não. A RFC 5280 determina que os novos certificados devem colocar um endereço de email na extensão Subject Alternative Name como rfc822Name, e não no Distinguished Name do titular. As CAs públicas podem remover um valor de email do titular de um certificado TLS durante a emissão, pelo que adicioná-lo não tem qualquer utilidade para HTTPS. Deixe o campo Email fora do assistente ou do ficheiro INF.
Com o snap-in da MMC ou o certreq.exe, a chave fica em Certificates (Local Computer) > Certificate Enrollment Requests como um pedido pendente, sendo automaticamente associada ao certificado emitido quando concluir o registo. Com o OpenSSL, a chave é o ficheiro .key gravado junto ao CSR; proteja-o como qualquer outro segredo e faça a sua cópia de segurança antes de implementar o certificado.
O PowerShell não tem um cmdlet nativo para CSR. O New-SelfSignedCertificate cria um par de chaves, mas produz um certificado autoassinado finalizado, não um CSR que uma CA pública possa assinar. A forma suportada de criar um pedido a partir do PowerShell é escrever o ficheiro INF apresentado acima e chamar o certreq.exe sobre ele (certreq -new request.inf request.csr). Módulos de terceiros como o PSPKI envolvem o certreq numa interface mais amigável, mas a ferramenta subjacente continua a ser o certreq.
O pedido pendente e a sua chave privada permanecem em Certificates (Local Computer) > Certificate Enrollment Requests. Não fazem nada por si só e não causam qualquer problema, mas vão-se acumulando ao longo do tempo. Abra o snap-in Certificates da MMC, reveja os pedidos pendentes e elimine os que já não precisar; isto também remove a chave correspondente.
Economize 10% em certificados SSL ao fazer seu pedido hoje!
Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

