Como funciona
Um certificado X.509 é um documento assinado que vincula uma chave pública a um nome: um domínio, uma pessoa ou uma organização. O que trafega entre servidores e arquivos é sua forma binária (DER), e o que se copia e cola é essa mesma estrutura em Base64 entre as linhas BEGIN CERTIFICATE e END CERTIFICATE, o formato PEM. Dentro há um sujeito, um emissor, um período de validade, a chave pública e extensões que dizem para que ele serve e onde consultar se foi revogado.
A ferramenta reconhece certificados, solicitações de assinatura PKCS#10 (CSR), chaves privadas PKCS#8, PKCS#1 e SEC1, chaves públicas, pacotes PKCS#7 (.p7b) e arquivos PKCS#12 (.pfx, .p12). Se você colar vários blocos juntos, ela ordena a cadeia do certificado final até a raiz, verifica cada assinatura com a chave do emissor e compara a chave privada com cada certificado e cada CSR para dizer qual corresponde a qual.
Ela também converte entre formatos, monta o .pfx exigido pelo IIS e pelo Azure a partir do certificado e da chave, e gera uma nova CSR com sua chave privada ou um certificado autoassinado para testes. Tudo é feito com a API criptográfica do seu navegador: nem os certificados nem as chaves são enviados a um servidor.
Exemplos
ISRG Root X1 · SHA-25696:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6A impressão digital SHA-256 da raiz do Let's Encrypt. É a que a autoridade e os repositórios de confiança publicam: se a do arquivo que você tem coincidir, é exatamente esse certificado.ISRG Root X1 · pin SPKIC5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=O SHA-256 da chave pública em Base64. É o valor que vai no pin-sha256 da configuração de segurança de rede do Android ou no certificate pinning de um app, e não muda ao renovar o certificado se a chave for reutilizada.root.crt + intermediate.crt + server.crtserver.crt + intermediate.crt + root.crtO nginx e o HAProxy consideram o primeiro certificado do arquivo como o do servidor. Se a cadeia estiver invertida, o nginx falha com key values mismatch porque compara a chave privada com o certificado da raiz.openssl pkcs12 -in viejo.pfx -legacy -nodes | openssl pkcs12 -export -out nuevo.pfxPBES2 · AES-256-CBC · MAC SHA-256Os .pfx exportados por versões antigas do Windows ou pelo OpenSSL 1.x são criptografados com RC2 e 3DES, que os navegadores não implementam. Este comando os criptografa novamente com AES, o formato que o OpenSSL 3 usa por padrão.Casos de uso
- Conferir, antes de instalar, se o certificado enviado pela autoridade cobre todos os domínios (SAN) e se a data de expiração é a esperada.
- Descobrir qual das chaves privadas que ficaram no servidor corresponde a cada certificado, sem precisar comparar módulos com o OpenSSL.
- Descobrir por que um cliente não confia no seu site: um intermediário ausente, uma cadeia fora de ordem ou um certificado assinado com SHA-1.
- Gerar a CSR para comprar ou renovar um certificado, com a chave criada no seu computador e o comando OpenSSL equivalente caso prefira fazer isso no servidor.
- Converter um .crt e sua .key em um .pfx para IIS, Azure App Service ou um keystore Java, ou extrair o certificado e a chave de um .pfx para o nginx.
- Obter a impressão digital ou o pin SPKI de um certificado para configurar certificate pinning em um app móvel ou validar um certificado de cliente.
Perguntas frequentes
É seguro colar minha chave privada aqui?
A chave é processada com a API Web Crypto dentro do seu navegador e não é enviada a nenhum servidor; você pode comprovar isso na aba Rede das ferramentas de desenvolvedor. Ainda assim, a boa prática é tratar qualquer chave de produção como um segredo: cole-a apenas em ferramentas nas quais você confia e feche a aba ao terminar.
Qual é a diferença entre PEM, DER, CRT, CER, P7B e PFX?
DER é o certificado em binário e PEM é esse mesmo binário em Base64 entre linhas BEGIN e END. As extensões .crt e .cer não indicam o formato: podem conter qualquer um dos dois. Um .p7b é um pacote PKCS#7 com vários certificados e nenhuma chave. Um .pfx ou .p12 é um PKCS#12: guarda o certificado, os intermediários e a chave privada juntos, criptografados com senha.
Como sei se falta o intermediário no meu servidor?
Cole o que você tem configurado no servidor. Se a cadeia terminar em um certificado que não é autoassinado, falta um elo: a extensão Authority Information Access dele costuma trazer, em CA Issuers, o endereço para baixar o emissor. Os navegadores de desktop às vezes o buscam sozinhos, mas o Android, o curl e a maioria das bibliotecas não, então o erro aparece só em alguns clientes.
Quanto tempo pode durar um certificado TLS público?
Desde setembro de 2020, os navegadores rejeitam certificados com mais de 398 dias. Em 2025, o CA/Browser Forum aprovou reduzir o máximo em etapas: 200 dias para os emitidos a partir de 15 de março de 2026, 100 dias a partir de março de 2027 e 47 dias a partir de março de 2029. Por isso vale a pena automatizar a renovação com ACME. As CAs internas de uma empresa não têm esse limite.
RSA ou ECDSA para a CSR?
ECDSA P-256 oferece segurança comparável a RSA de 3072 bits com chave e assinaturas muito menores, e o servidor conclui o handshake mais rápido. Todos os navegadores e sistemas atuais o suportam. RSA 2048 continua sendo a opção segura se você tem clientes muito antigos, dispositivos embarcados ou um sistema que só aceita RSA.
Basta colocar o domínio no nome comum (CN)?
Não. Desde o Chrome 58, em 2017, os navegadores só olham os nomes alternativos (SAN) e o CN é ignorado. Cada domínio em que o certificado for usado, incluindo o do CN, precisa estar na lista de SAN. Um curinga como *.example.com cobre um único nível: serve para www.example.com, mas não para example.com nem para a.b.example.com.