Obtenha certificados SSL facilmente com Let's Encrypt

Com o processo automatizado do Let’s Encrypt, você obtém facilmente certificados SSL para seus domínios e pode configurá-los sem nenhum custo adicional na plataforma da Azion.

Andrew Johnson - Product Marketing Manager
Gabriel Nes - Senior Software Engineering Director
Rachel Kempf - Editor-in-Chief
Obtenha certificados SSL facilmente com Let's Encrypt

Let’s Encrypt é uma Autoridade Certificadora (CA) gratuita, aberta e automatizada, usada para emitir certificados SSL utilizando o protocolo ACME, sigla do inglês Automatic Certificate Management Environment (Ambiente de Gerenciamento Automático de Certificados, em tradução livre). Os certificados SSL são componentes cruciais para a segurança e o sucesso de um site, pois permitem a transferência segura de dados usando HTTPS, que não apenas melhora a posição de um site em mecanismos de busca e a confiança dos usuários, como também permite o uso do protocolo HTTP/2, resultando em melhorias significativas da performance em relação ao HTTP/1.

Atualmente, os clientes da Azion podem obter certificados SSL sem nenhum custo utilizando nosso domínio compartilhado ou seus próprios domínios HTTPS para carregar seus certificados SSL, que podem ser configurados sem custo adicional no Real-Time Manager. No entanto, para obter um certificado SSL, os usuários devem usar uma CA como Let’s Encrypt para validar a identidade do servidor e emitir um certificado que vincule essa identidade à chave pública do servidor. Este post conduz os leitores por esse processo, desde a instalação e configuração do software necessário até a emissão de certificados por meio dos tipos de desafio HTTP e DNS.

O que é ACME e como funciona?

O Let’s Encrypt usa o protocolo ACME para verificar se você controla um nome de domínio determinado e para emitir um certificado. Com o ACME, o processo de obtenção de um certificado SSL é totalmente automatizado, o que melhora a segurança ao reduzir a possibilidade de erro e permite que a Let’s Encrypt ofereça certificados de domínio validados de forma gratuita.

O ACME permite que os agentes de software em servidores HTTPS obtenham, forneçam e renovem certificados automaticamente, sem interação humana. No entanto, antes que o cliente solicitante possa gerenciar o certificado, ele deve provar que controla o domínio. Primeiro, o agente solicitante envia a chave pública para seus servidores e solicita ao Let’s Encrypt o que precisa ser feito para demonstrar que controla o domínio. A CA fornecerá uma lista de desafios que o cliente pode cumprir para validar o controle do domínio e um token, que o cliente deve assinar com seu par de chaves privado.

Após concluir os desafios, o cliente deve assinar o token com sua chave privada para demonstrar que controla o par de chaves e notificar à CA que está pronto para concluir a validação. Depois que a CA verifica a assinatura e garante que o desafio foi concluído, o agente é autorizado para o gerenciamento de certificados usando o par de chaves.

Para obter um certificado, o agente constrói uma Solicitação de Assinatura de Certificado (CSR) PKCS#10, solicitando à CA que emita um certificado para o dominio utilizando uma chave pública especifica, acompanhada pela assinatura da chave privada correspondente e a assinatura do par de chaves autorizado para o dominio. Após verificar as duas assinaturas, a CA emite um certificado para o dominio com a chave pública do CSR.

Instalação e configuração do acme.sh

Para obter um certificado Let’s Encrypt, você precisará escolher um software cliente de ACME. Um dos softwares recomendados e mantido pela comunidade é o acmesh, que implementa o protocolo ACME em Unix shell script puro e, portanto, é suportado em diversas plataformas (como Mac OSX, Windows, FreeBSD, Solari e diversas distribuições de Linux).

Utilizando o acme.sh é possível fazer a emissão e renovação dos certificados usando os dois tipos de desafios, HTTP e DNS. Acme.sh é compatível com IPv6 e é fácil de usar. Embora o GitHub forneça métodos de instalação adicionais, este tutorial o guiará na instalação e a configuração por meio do comando curl.

O acme.sh pode ser instalado no mesmo servidor de origem de sua edge application ou em um específico para executar este serviço. O comando curl para a instalação é:

curl https://get.acme.sh | sh -s email=gabriel.nes@azion.com
	source ~/.bashrc

A instalação pode ser verificada emitindo o comando:

acme.sh --version
V2.8.1

Depois de instalar o acme.sh, você pode configurá-lo para usar o Let’s Encrypt como uma CA (Autoridade de Certificação) com o comando:

acme.sh --set-default-ca --server letsencrypt

Completando os desafios

Depois que o acme.sh for instalado e configurado, você pode usá-lo para demonstrar o controle de seu domínio usando um dos desafios especificados pela CA, como fornecer um recurso de HTTP em um dos URIs conhecidos do domínio ou fornecer um registro DNS no domínio. Embora HTTP seja o tipo de desafio mais comum, você poderá usar o método DNS se estiver emitindo certificados para um domínio wildcard ou se tiver vários servidores web. Qualquer um dos desafios pode ser facilmente concluído ao usar o Edge Application, bastando seguir o processo descrito abaixo.

Desafio por meio de HTTP

Atualmente, esse é o tipo de desafio mais comum, pois é fácil de automatizar e funciona bem com servidores web já existentes. A Let’s Encrypt fornece um token para o client ACME, e ele deve inserir um arquivo em seu servidor da web em http://<YOUR_DOMAIN>/.well-known/acme-challenge/ <TOKEN>

Caso você esteja rodando o acme.sh em um servidor diferente da sua origem principal, basta configurar uma regra no Edge Application para direcionar as requisições deste caminho para esse servidor.

A geração do certificado pode ser feita com um único comando:

acme.sh --issue -d lets.httpbin.xyz -w /usr/share/nginx/html

Depois de inserir esse comando, o processo do desafio será concluído em menos de 10 segundos.

O acme.sh irá armazenar o arquivo no local indicado (/usr/share/nginx/html) e a sua edge application e seu servidor de origem irão receber uma requisição para obter esse arquivo. Caso o processo seja finalizado com sucesso, o acme.sh irá apresentar o local, a chave e as cadeias (strings) dos arquivos de certificado.

Desafio por meio de DNS

O desafio ACME que emprega DNS adiciona um valor específico a um registro TXT no DNS do seu domínio. Normalmente, esse tipo de desafio é mais difícil de configurar do que o HTTP, mas caso seu domínio esteja configurado no Intelligent DNS da Azion, este processo pode ser feito de forma extremamente rápida usando o acme.sh.

No entanto, manter as credenciais da API em seu servidor web aumenta o impacto de um ataque caso esse servidor seja atacado. Portanto, por questões de segurança, recomendamos que a conta configurada abaixo seja criada exclusivamente para esta integração com as permissões apenas para o Intelligent DNS.

Para integrar o acme.sh com a API do Intelligent DNS, precisamos configurar as seguintes variáveis de ambiente para a autenticação de acesso:

export AZION_Email="gabriel.nes@azion.com"
export AZION_Password="<YOUR PASSWORD>"

O certificado pode ser gerado utilizando o seguinte comando:

acme.sh --issue --dns dns_azion -d lets2.httpbin.xyz

Todo esse processo pode ser acompanhado nos logs. O acme.sh irá acessar a API do Azion Edge DNS e adicionar o registro (TXT _acme-challenge.lets2.httpbin.xyz) no domínio configurado. Depois disso, a Let’s Encrypt fará a consulta do registro e, caso tudo funcione conforme o esperado, o certificado e as chaves serão disponibilizados.

Agora, basta subir o conteúdo do seu certificado e chaves no Azion Manager ou via API do Digital Certificates para usá-los no seu domínio.

Conclusão

Com um aumento no custo e na frequência dos ataques cibernéticos no ano passado, é mais importante do que nunca que os proprietários de negócios digitais se comprometam com a segurança de seus sites, obtendo certificados SSL para seus domínios. Embora esse processo já tenha sido complicado, caro e sujeito a erro humano, Let’s Encrypt aumentou drasticamente a adoção de HTTP desde o seu lançamento para reduzir significativamente a carga financeira e de procedimentos no gerenciamento de certificados. Seguindo esse processo, os usuários da Azion podem obter certificados SSL facilmente e, usando o Intelligent DNS, podem até mesmo completar os desafios de DNS para casos de uso especializados de uma forma simples e segura. Para saber mais sobre o Intelligent DNS, entre em contato com nossos especialistas ou crie uma conta grátis para experienciar como o Edge DNS pode melhorar a segurança e a disponibilidade do seu site hoje.

Inscreva-se na nossa Newsletter