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:
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:
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:
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.