Utilia

Descodificador de certificados X.509

Descodifica um certificado SSL/TLS, cadeia ou CSR no navegador. Vê titular, emissor, data de expiração, SAN, utilização da chave e impressão SHA-256.

Os certificados são descodificados no teu navegador. Nada é enviado, por isso os certificados internos e os CSR ficam no teu computador.

Esta ferramenta lê o certificado, mas não verifica a assinatura nem a cadeia de confiança: um certificado descodificado não prova que seja autêntico.

Como descodificar um certificado

  1. Cola um certificado em Certificado, cadeia ou CSR (PEM ou Base64) ou larga um ficheiro na zona de largar ficheiros. São aceites texto PEM (-----BEGIN CERTIFICATE-----), DER binário (.der, .cer), pedidos de assinatura de certificado (.csr) e pacotes PKCS#7 (.p7b).
  2. Clica em Descodificar. Um bloco PEM colado também é descodificado assim que a linha -----END …----- fica completa. Carregar um exemplo mostra um certificado de teste.
  3. Cada certificado ou CSR tem a sua própria tabela. Um selo indica Datas válidas, Expirado ou Ainda não válido, e Copiar PEM copia-o de volta em formato PEM (útil depois de abrir um ficheiro DER binário).
  4. Numa cadeia (um certificado de servidor seguido dos intermédios), todos os blocos são descodificados por ordem, e a ferramenta indica Emitido pelo certificado n quando o emissor de um certificado coincide com o titular de outro da lista.

O que significam os campos

  • Titular (subject) e Emissor (issuer) são nomes distintos (distinguished names): CN (nome comum), O (organização), OU, L (localidade), ST (distrito ou estado), C (país). Um certificado cujo emissor é igual ao titular é marcado como Autoassinado.
  • Válido desde e Válido até são as datas notBefore e notAfter, mostradas no teu fuso horário, com o número de dias que faltam. Desde 2020, os navegadores rejeitam certificados TLS públicos com validade superior a 398 dias, e o CA/Browser Forum está a reduzir ainda mais esse limite.
  • Número de série aparece em hexadecimal (como nos navegadores e no OpenSSL) e em decimal.
  • Algoritmo de assinatura e Chave pública: para RSA, o tamanho do módulo (2048, 3072, 4096 bits) e o expoente público (quase sempre 65537); para curvas elípticas, a curva (P-256, P-384…); o Ed25519 também é reconhecido.
  • Extensões: Subject Alternative Name (os nomes de anfitrião, endereços IP e endereços de e-mail abrangidos pelo certificado; os navegadores ignoram o CN e só usam o SAN), Key Usage, Extended Key Usage (serverAuth, clientAuth, codeSigning…), Basic Constraints (CA: TRUE para uma autoridade), Subject e Authority Key Identifiers, CRL Distribution Points, Authority Information Access (servidor OCSP e URL dos CA Issuers) e Certificate Policies (DV, OV, EV). As extensões marcadas como crítica têm de ser compreendidas por qualquer software que use o certificado.
  • Impressão digital SHA-1 e Impressão digital SHA-256 são hashes do certificado DER completo, calculados com a Web Crypto API do navegador; coincidem com openssl x509 -fingerprint. Pin da chave pública é o SHA-256 em Base64 da informação da chave pública, o formato usado no certificate pinning.

Descodificar não é verificar

Esta ferramenta é um simples analisador ASN.1/DER. Não verifica a assinatura, não constrói uma cadeia de confiança até uma autoridade raiz e não consulta listas de revogação nem OCSP, porque isso exigiria acesso à rede. Usa-a para inspecionar um certificado, perceber porque é que um nome de anfitrião não corresponde ou saber quando expira, e não para decidir se é de confiança. As chaves privadas são recusadas de propósito: se colares um bloco PRIVATE KEY, não é descodificado, e deves considerá-lo comprometido se alguma vez o partilhaste.

Perguntas frequentes

Como obtenho o certificado de um site?

Na maioria dos navegadores, clica no cadeado, abre o visualizador de certificados e exporta-o em PEM. Na linha de comandos, openssl s_client -connect example.com:443 -showcerts mostra a cadeia completa; cola aqui os blocos.

Qual é a diferença entre PEM e DER?

DER é a codificação binária do certificado. PEM são os mesmos bytes em Base64 entre as linhas BEGIN e END, mais fáceis de copiar e colar. A ferramenta lê os dois formatos e descodifica o mesmo conteúdo.

O que é um CSR?

Um pedido de assinatura de certificado (CSR) é o que envias a uma autoridade de certificação: contém o titular pedido, a chave pública e, muitas vezes, os SAN pretendidos. Ainda não tem emissor, validade nem número de série; esses dados são acrescentados pela autoridade.

Porque é que o meu navegador diz que o certificado é inválido se as datas estão certas?

As datas são apenas uma das verificações. O nome de anfitrião tem de constar do Subject Alternative Name, a cadeia tem de levar a uma raiz de confiança (um certificado intermédio em falta é uma causa frequente), a utilização da chave tem de permitir TLS e o certificado não pode estar revogado.

É seguro colar aqui um certificado?

Sim. Um certificado é informação pública que os servidores enviam a todos os visitantes, e esta ferramenta processa-o localmente sem o enviar para lado nenhum. Só as chaves privadas têm de ficar secretas.