Decodificador de CSR

Antes de uma Autoridade de Certificação assinar um certificado TLS, você entrega a ela um Pedido de Assinatura de Certificado (CSR), um bloco base64 que contém o assunto que você quer no certificado e a sua chave pública, além de uma assinatura que comprova que você possui a chave privada correspondente. Este decodificador recebe um CSR codificado em PEM e mostra os campos do assunto e os parâmetros da chave pública, para que você possa conferir o nome comum, a organização e o tamanho da chave antes de enviá-lo a uma CA.

Como decodificar um CSR

  1. 1

    Cole o CSR

    Inclua os marcadores `-----BEGIN CERTIFICATE REQUEST-----` e `-----END CERTIFICATE REQUEST-----`. Espaços em branco são tolerados.

  2. 2

    Execute o decodificador

    O pedido é analisado e os campos do assunto e a chave pública são extraídos.

  3. 3

    Revise a saída

    Confira os campos do assunto, como o nome comum e a organização, além do algoritmo e do tamanho da chave.

  4. 4

    Aja conforme o resultado

    Se o assunto ou a chave parecerem errados, regenere o CSR antes de enviá-lo a uma CA.

O que o decodificador mostra

Uma CSR é uma estrutura ASN.1 (PKCS #10). O decodificador lê duas coisas dela:

  • Assunto: os campos do Nome Distinto solicitados, normalmente o país (C), a organização (O), a unidade organizacional (OU), a localidade (L), o estado (ST) e o nome comum (CN).
  • Chave pública: o algoritmo (RSA, EC, DSA) e o tamanho da chave em bits.

A assinatura dentro da CSR é o que prova à CA que o remetente possui a chave privada correspondente. Este decodificador não a exibe; a CA a verifica ao processar o pedido.

Exemplo de saída

Para um pedido de certificado de domínio típico, a saída tem este aspecto:

Subject: commonName=www.example.com, organizationName=Example Inc., countryName=US
Key bits: 2048
Key type: RSA

Os nomes exatos dos atributos do assunto dependem de como o pedido foi gerado.

Campos a verificar

  • Nome Comum (CN): deve ser o nome do host principal. Navegadores modernos ignoram o CN e olham apenas para os SANs, mas muitas CAs ainda exigem um CN válido.
  • Nomes Alternativos de Assunto (SANs): liste todos os nomes de host e curingas que o cert irá proteger. Navegadores fazem correspondência com os SANs, não com o CN.
  • País (C): código ISO de 2 letras (US, GB, DE), não um nome completo. CAs rejeitam códigos errados.
  • Tamanho da chave: RSA 2048 é o mínimo; 3072 ou 4096 para maior segurança. ECDSA P-256 é uma boa alternativa moderna e produz um cert menor.
  • Algoritmo de assinatura: SHA-256 ou melhor. SHA-1 está obsoleto e será rejeitado.

Sobre os Nomes Alternativos de Assunto (SANs)

O decodificador mostra o assunto do pedido, mas não a extensão SAN. Os navegadores fazem correspondência dos certificados com os SANs, e não com o CN; se o certificado precisar cobrir mais nomes de host, inclua-os ao gerar o pedido, por exemplo:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Quando o decodificador não consegue analisar o CSR

As causas mais comuns são um bloco PEM truncado ou danificado:

  • Texto truncado: recole o bloco completo, incluindo os dois marcadores.
  • Quebras de linha inseridas: cole o bloco exatamente como foi gerado.
  • Conteúdo errado: uma chave pública, um certificado ou uma chave privada colados por engano não serão analisados como um CSR.

Gerando a chave correspondente

Uma CSR é sempre gerada juntamente com uma chave privada. Comando típico:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr

Ou para ECDSA:

openssl req -new -newkey ec:<(openssl ecparam -name prime256v1) -nodes -keyout example.key -out example.csr

Proteja a chave privada, se ela vazar, o certificado deve ser revogado.

Perguntas frequentes

Uma CSR contém apenas informações públicas (chave pública, assunto, SANs) mais uma assinatura, é seguro compartilhar com uma CA ou colar em um decodificador. O que deve permanecer em segredo é a chave privada correspondente.

Não. Este decodificador espera a forma textual PEM com os marcadores BEGIN/END CERTIFICATE REQUEST. Para usar um pedido DER binário, converta-o antes para PEM, por exemplo com openssl req -in request.der -inform DER -out request.pem.

Não. A maioria das CAs públicas (Let’s Encrypt, DigiCert, Sectigo) exige apenas CN e SANs, elas ignoram O, OU, L, ST, C para certificados validados por domínio. Certificados validados por organização e de Validação Estendida verificam esses campos separadamente.

Na maioria das vezes porque o texto colado foi truncado ou ganhou quebras de linha, ou porque uma chave ou certificado foi colado no lugar de uma CSR. Recole o bloco completo entre os dois marcadores.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas