Certificados Autoassinados: Como Criar o Seu em Apenas 3 Linhas

Os chamados “certificados autoassinados” têm uma razão de ser no nome. (E aqui está como criá-los em 3 simples comandos.)

Embora o termo “autoassinado” possa parecer indicar que o certificado não é confiável, na verdade, a palavra “auto” refere-se ao fato de que o próprio certificado é assinado com a chave que ele contém. Ou seja, estamos a assinar o certificado sobre a chave com a própria chave.

Neste artigo, o objetivo não é um guia completo sobre certificados, mas sim demonstrar como é simples trabalhar com eles. Veja como pode criar um certificado autoassinado em poucos passos:

Passo 1: Gerar uma nova chave RSA

Para gerar uma chave RSA de 4096 bits (um tamanho bastante razoável), pode utilizar o seguinte comando:

Bash
openssl genrsa -out nossa_chave_rsa.key 4096

Este comando gera uma chave pública e privada RSA, que você pode usar diretamente.

Passo 2: Criar uma solicitação de assinatura de certificado (CSR)

A seguir, criamos uma solicitação para que o certificado seja assinado, utilizando a chave RSA gerada. Isso pode ser feito com o comando:

Bash
openssl req -new -sha256 -key nossa_chave_rsa.key -out pedido_assinatura.csr

Este comando solicita algumas informações sobre o certificado, como quem você é e qual será a finalidade do certificado. A solicitação também utiliza o arquivo de configuração do OpenSSL para definir configurações padrão.

Passo 3: Assinar a solicitação de certificado com a mesma chave (autoassinado)

Agora que temos a chave e a solicitação, podemos assinar o próprio certificado. Ou seja, ao invés de pedir a uma Autoridade Certificadora (CA) para assinar o certificado, usamos a nossa própria chave para fazê-lo:

Bash
openssl x509 -req -in pedido_assinatura.csr \ 
     -signkey nossa_chave_rsa.key \
     -CAcreateserial -out certificado_assinado.crt \
     -days 90 -sha256

Aqui, utilizámos a nossa chave privada para assinar a solicitação de assinatura e criar um certificado que seja válido por 90 dias.

O que significa “autoassinado”?

A parte “autoassinado” do processo refere-se ao facto de usarmos a nossa própria chave para assinar o certificado. Isso elimina a necessidade de uma terceira parte para validá-lo, o que é perfeito para testes e uso em redes privadas. Embora o certificado não seja validado por uma Autoridade Certificadora confiável, é útil porque podemos distribuir diretamente as nossas chaves públicas.

Além disso, ao adicionar este certificado à lista de certificados confiáveis (por exemplo, no seu navegador), será possível confiar na autenticidade dos sites que utilizem esse certificado, sem a necessidade de verificações complexas sobre quem assinou o certificado. A verificação passa a ser “confiamos neste certificado?”, ao invés de “confiamos no seu assinante?”.

Conclusão

Criar e usar certificados autoassinados é uma maneira prática e eficiente de gerenciar a segurança em redes privadas e ambientes de teste. Embora não sejam ideais para produção pública, devido à falta de validação por uma autoridade externa, oferecem flexibilidade e controle total sobre os certificados utilizados.

Artigos Relacionados