Welcome to Blog da Locaweb   Click to listen highlighted text! Welcome to Blog da Locaweb
Artigos por
5 minutos

Certificado SSL gratuito e automático com o Let’s Encrypt

Ouça o conteúdo deste post clicando neste player

O Let’s Encript é um projeto encabeçado pela Linux Foundation com o intuito de popularizar e difundir a utilização de criptografia na web ao facilitar e a aquisição e instalação de certificados SSL assinado por uma autoridade certificadora.

Qualquer um que já precisou tornar um website mais seguro através da instalação de um certificado SSL sabe que não se trata de uma tarefa trivial. Além, disso, como não é algo que fazemos diariamente, fica difícil lembrar os passos necessários na hora que precisamos, certo?

Com o Let’s encrypt não há a necessidade de emails de confirmação, certificados expirados quebrando seu site ou configurações complexas. O próprio programa cuida de tudo isso para você. Além de tudo, os certificados emitidos pelo Let’s Encrypt são gratuitos e, portanto, não há pagamento envolvido. Parece bom? Então vamos ver como ele funciona.

Como o let’s encrypt garante que não se trata de uma fraude?

O Let’s Encrypt implementa um novo protocolo chamado ACME com a finalidade de tornar mais simples a obtenção e configuração de certificados SSL.

Há 2 processo envolvidos em sua utilização: o primeiro é provar a CA (Certificate Authority) do Let’s Encrypt que um determinado servidor controla aquele domínio. Uma vez confirmado isso, é possível requisitar, renovar e revogar um certificado para o domínio confirmado de forma automática.

O agente do Let’s Encrypt que instalaremos no servidor é na verdade um cliente em Python. Na primeira vez que o cliente interagir com o servidor remoto da CA ela irá gerar um par de chaves criptográficas para este agente.

Em seguida, o servidor remoto ira solicitar um ou mais testes para confirmar se o servidor web realmente tem o controle do domínio para o qual ele solicita o certificado. Os testes podem ser, por exemplo:

  • Criar um registro DNS na URL sob o domínio, ou
  • Disponibilizar um recurso HTTP em uma página específica no domínio em questão.

Juntamente com os desafios, a CA do Let’s Encrypt pede que o agente assine os desafios com a chave pública enviada para ele, de forma que a CA possa checá-los com a chave privada correta. Certamente, trata-se de um processo bastante engenhoso e, até certo ponto, simples.

A imagem abaixo exemplifica esse processo: para provar que tem o controle do domínio example.com o Let’s Encrypt solicita que o agente instalado no servidor disponibilize uma página com ed98 assinado digitalmente com a chave pública 9cf0b331 gerada anteriormente, na URL /8303

como funciona o desafio

Uma vez que o agente completa as tarefas solicitadas, ele avisa ao servidor remoto da CA que está pronto para a verificação e este, por sua vez, tenta baixar o documento solicitado esperando que o conteúdo seja aquele esperado. Se a assinatura criptográfica bater com o a chave privada, o agente é considerado autorizado para gerenciar o domínio example.com.

Instalação do Agente

Agora que sabemos como o Let’s Encrypt garante a autenticidade do certificado, vamos colocar a mão na massa para utilizar o programa. Se a sua distribuição Linux tiver um pacote com o programa, use-o. Caso contrário, iremos utilizar o Git:


$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
./letsencrypt-auto --help

O último comando acima irá identificar o seu sistema, baixar todas as dependências e atualizar o cliente automaticamente.

Utilização da ferramenta

O ferramenta utiliza diversos plugins que podem ser usados para obter e instalar os certificados. Se estiver utilizando o plugin Apache, que automatiza tanto a obtenção quanto a instalação e configuração do certificado no servidor:

./letsencrypt-auto --apache

Por enquanto, não há plugin para outras plataformas, portanto, caso utilize o Nginx ou outro servidor web, é possível utilizar a opção certonly --standalone. Para isso, pare o seu servidor e digite:


./letsencrypt-auto certonly --standalone -d seusite.com.br -d www.seusite.com.br

Em caso de hospedagens compartilhadas, é possível utilizar a opção certonly --webroot e especificar o diretório de instalação:


./letsencrypt-auto certonly -d seusite.com.br -d www.seusite.com.br -w /var/www/diretorio

Teste prático

Em meu teste, utilizei um Cloud Server Pro da Locaweb. Como não tinha nenhum domínio disponível, utilizei o próprio domínio fornecido pelo provedor: cpro31996.publiccloud.com.br. Instalei o Apache e executei o comando passando o domínio:


./letsencrypt-auto --apache -d cpro31996.publiccloud.com.br

Logo em seguida fui solicitado a informar um email para recuperação da chave; e outra tela me perguntou se eu queria permitir acesso HTTP ou redirecionar todo o tráfego para HTTPS. Escolhi a segunda opção.

Foi só reiniciar o Apache e o certificado já estava instalado e funcionando. Mágica! 🙂

certificado letsencrypt

Não foi necessário nem mesmo alterar o apache.conf

Renovação do Certificado

Para renovar o seu certificado, simplesmente execute o letsencrypt novamente e forneça os mesmo valores quando solicitado. Lembre-se que o projeto ainda está em beta e portanto, muita coisa pode mudar até que seja necessário renovar seu certificado.

Revogação do Certificado

Para revogar um determinado certificado, passe o caminho completo do arquivo:


$ letsencrypt revoke --cert-path /caminho/do/seusite-cert.pem

A documentação completa pode ser lida no site do projeto.

new RDStationForms(‘teste-blog-institucional-cafe6f2879e65c5de3e2-html’, ‘UA-120079229-3’).createForm();

  Click to listen highlighted text! O Let’s Encript é um projeto encabeçado pela Linux Foundation com o intuito de popularizar e difundir a utilização de criptografia na web ao facilitar e a aquisição e instalação de certificados SSL assinado por uma autoridade certificadora. Qualquer um que já precisou tornar um website mais seguro através da instalação de um certificado SSL sabe que não se trata de uma tarefa trivial. Além, disso, como não é algo que fazemos diariamente, fica difícil lembrar os passos necessários na hora que precisamos, certo? Com o Let’s encrypt não há a necessidade de emails de confirmação, certificados expirados quebrando seu site ou configurações complexas. O próprio programa cuida de tudo isso para você. Além de tudo, os certificados emitidos pelo Let’s Encrypt são gratuitos e, portanto, não há pagamento envolvido. Parece bom? Então vamos ver como ele funciona. Como o let’s encrypt garante que não se trata de uma fraude? O Let’s Encrypt implementa um novo protocolo chamado ACME com a finalidade de tornar mais simples a obtenção e configuração de certificados SSL. Há 2 processo envolvidos em sua utilização: o primeiro é provar a CA (Certificate Authority) do Let’s Encrypt que um determinado servidor controla aquele domínio. Uma vez confirmado isso, é possível requisitar, renovar e revogar um certificado para o domínio confirmado de forma automática. O agente do Let’s Encrypt que instalaremos no servidor é na verdade um cliente em Python. Na primeira vez que o cliente interagir com o servidor remoto da CA ela irá gerar um par de chaves criptográficas para este agente. Em seguida, o servidor remoto ira solicitar um ou mais testes para confirmar se o servidor web realmente tem o controle do domínio para o qual ele solicita o certificado. Os testes podem ser, por exemplo: Criar um registro DNS na URL sob o domínio, ou Disponibilizar um recurso HTTP em uma página específica no domínio em questão. Juntamente com os desafios, a CA do Let’s Encrypt pede que o agente assine os desafios com a chave pública enviada para ele, de forma que a CA possa checá-los com a chave privada correta. Certamente, trata-se de um processo bastante engenhoso e, até certo ponto, simples. A imagem abaixo exemplifica esse processo: para provar que tem o controle do domínio example.com o Let’s Encrypt solicita que o agente instalado no servidor disponibilize uma página com ed98 assinado digitalmente com a chave pública 9cf0b331 gerada anteriormente, na URL /8303 Uma vez que o agente completa as tarefas solicitadas, ele avisa ao servidor remoto da CA que está pronto para a verificação e este, por sua vez, tenta baixar o documento solicitado esperando que o conteúdo seja aquele esperado. Se a assinatura criptográfica bater com o a chave privada, o agente é considerado autorizado para gerenciar o domínio example.com. Instalação do Agente Agora que sabemos como o Let’s Encrypt garante a autenticidade do certificado, vamos colocar a mão na massa para utilizar o programa. Se a sua distribuição Linux tiver um pacote com o programa, use-o. Caso contrário, iremos utilizar o Git: $ git clone https://github.com/letsencrypt/letsencrypt $ cd letsencrypt ./letsencrypt-auto --help O último comando acima irá identificar o seu sistema, baixar todas as dependências e atualizar o cliente automaticamente. Utilização da ferramenta O ferramenta utiliza diversos plugins que podem ser usados para obter e instalar os certificados. Se estiver utilizando o plugin Apache, que automatiza tanto a obtenção quanto a instalação e configuração do certificado no servidor: ./letsencrypt-auto --apache Por enquanto, não há plugin para outras plataformas, portanto, caso utilize o Nginx ou outro servidor web, é possível utilizar a opção certonly --standalone. Para isso, pare o seu servidor e digite: ./letsencrypt-auto certonly --standalone -d seusite.com.br -d www.seusite.com.br Em caso de hospedagens compartilhadas, é possível utilizar a opção certonly --webroot e especificar o diretório de instalação: ./letsencrypt-auto certonly -d seusite.com.br -d www.seusite.com.br -w /var/www/diretorio Teste prático Em meu teste, utilizei um Cloud Server Pro da Locaweb. Como não tinha nenhum domínio disponível, utilizei o próprio domínio fornecido pelo provedor: cpro31996.publiccloud.com.br. Instalei o Apache e executei o comando passando o domínio: ./letsencrypt-auto --apache -d cpro31996.publiccloud.com.br Logo em seguida fui solicitado a informar um email para recuperação da chave; e outra tela me perguntou se eu queria permitir acesso HTTP ou redirecionar todo o tráfego para HTTPS. Escolhi a segunda opção. Foi só reiniciar o Apache e o certificado já estava instalado e funcionando. Mágica! 🙂 Não foi necessário nem mesmo alterar o apache.conf Renovação do Certificado Para renovar o seu certificado, simplesmente execute o letsencrypt novamente e forneça os mesmo valores quando solicitado. Lembre-se que o projeto ainda está em beta e portanto, muita coisa pode mudar até que seja necessário renovar seu certificado. Revogação do Certificado Para revogar um determinado certificado, passe o caminho completo do arquivo: $ letsencrypt revoke --cert-path /caminho/do/seusite-cert.pem A documentação completa pode ser lida no site do projeto. new RDStationForms(‘teste-blog-institucional-cafe6f2879e65c5de3e2-html’, ‘UA-120079229-3’).createForm();

O Let’s Encript é um projeto encabeçado pela Linux Foundation com o intuito de popularizar e difundir a utilização de criptografia na web ao facilitar e a aquisição e instalação de certificados SSL assinado por uma autoridade certificadora.

Qualquer um que já precisou tornar um website mais seguro através da instalação de um certificado SSL sabe que não se trata de uma tarefa trivial. Além, disso, como não é algo que fazemos diariamente, fica difícil lembrar os passos necessários na hora que precisamos, certo?

Com o Let’s encrypt não há a necessidade de emails de confirmação, certificados expirados quebrando seu site ou configurações complexas. O próprio programa cuida de tudo isso para você. Além de tudo, os certificados emitidos pelo Let’s Encrypt são gratuitos e, portanto, não há pagamento envolvido. Parece bom? Então vamos ver como ele funciona.

Como o let’s encrypt garante que não se trata de uma fraude?

O Let’s Encrypt implementa um novo protocolo chamado ACME com a finalidade de tornar mais simples a obtenção e configuração de certificados SSL.

Há 2 processo envolvidos em sua utilização: o primeiro é provar a CA (Certificate Authority) do Let’s Encrypt que um determinado servidor controla aquele domínio. Uma vez confirmado isso, é possível requisitar, renovar e revogar um certificado para o domínio confirmado de forma automática.

O agente do Let’s Encrypt que instalaremos no servidor é na verdade um cliente em Python. Na primeira vez que o cliente interagir com o servidor remoto da CA ela irá gerar um par de chaves criptográficas para este agente.

Em seguida, o servidor remoto ira solicitar um ou mais testes para confirmar se o servidor web realmente tem o controle do domínio para o qual ele solicita o certificado. Os testes podem ser, por exemplo:

  • Criar um registro DNS na URL sob o domínio, ou
  • Disponibilizar um recurso HTTP em uma página específica no domínio em questão.

Juntamente com os desafios, a CA do Let’s Encrypt pede que o agente assine os desafios com a chave pública enviada para ele, de forma que a CA possa checá-los com a chave privada correta. Certamente, trata-se de um processo bastante engenhoso e, até certo ponto, simples.

A imagem abaixo exemplifica esse processo: para provar que tem o controle do domínio example.com o Let’s Encrypt solicita que o agente instalado no servidor disponibilize uma página com ed98 assinado digitalmente com a chave pública 9cf0b331 gerada anteriormente, na URL /8303

como funciona o desafio

Uma vez que o agente completa as tarefas solicitadas, ele avisa ao servidor remoto da CA que está pronto para a verificação e este, por sua vez, tenta baixar o documento solicitado esperando que o conteúdo seja aquele esperado. Se a assinatura criptográfica bater com o a chave privada, o agente é considerado autorizado para gerenciar o domínio example.com.

Instalação do Agente

Agora que sabemos como o Let’s Encrypt garante a autenticidade do certificado, vamos colocar a mão na massa para utilizar o programa. Se a sua distribuição Linux tiver um pacote com o programa, use-o. Caso contrário, iremos utilizar o Git:


$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
./letsencrypt-auto --help

O último comando acima irá identificar o seu sistema, baixar todas as dependências e atualizar o cliente automaticamente.

Utilização da ferramenta

O ferramenta utiliza diversos plugins que podem ser usados para obter e instalar os certificados. Se estiver utilizando o plugin Apache, que automatiza tanto a obtenção quanto a instalação e configuração do certificado no servidor:

./letsencrypt-auto --apache

Por enquanto, não há plugin para outras plataformas, portanto, caso utilize o Nginx ou outro servidor web, é possível utilizar a opção certonly --standalone. Para isso, pare o seu servidor e digite:


./letsencrypt-auto certonly --standalone -d seusite.com.br -d www.seusite.com.br

Em caso de hospedagens compartilhadas, é possível utilizar a opção certonly --webroot e especificar o diretório de instalação:


./letsencrypt-auto certonly -d seusite.com.br -d www.seusite.com.br -w /var/www/diretorio

Teste prático

Em meu teste, utilizei um Cloud Server Pro da Locaweb. Como não tinha nenhum domínio disponível, utilizei o próprio domínio fornecido pelo provedor: cpro31996.publiccloud.com.br. Instalei o Apache e executei o comando passando o domínio:


./letsencrypt-auto --apache -d cpro31996.publiccloud.com.br

Logo em seguida fui solicitado a informar um email para recuperação da chave; e outra tela me perguntou se eu queria permitir acesso HTTP ou redirecionar todo o tráfego para HTTPS. Escolhi a segunda opção.

Foi só reiniciar o Apache e o certificado já estava instalado e funcionando. Mágica! 🙂

certificado letsencrypt

Não foi necessário nem mesmo alterar o apache.conf

Renovação do Certificado

Para renovar o seu certificado, simplesmente execute o letsencrypt novamente e forneça os mesmo valores quando solicitado. Lembre-se que o projeto ainda está em beta e portanto, muita coisa pode mudar até que seja necessário renovar seu certificado.

Revogação do Certificado

Para revogar um determinado certificado, passe o caminho completo do arquivo:


$ letsencrypt revoke --cert-path /caminho/do/seusite-cert.pem

A documentação completa pode ser lida no site do projeto.

new RDStationForms(‘teste-blog-institucional-cafe6f2879e65c5de3e2-html’, ‘UA-120079229-3’).createForm();

Maria Vitória

Apaixonada por marketing digital e tecnologia. Faz parte do Grupo Locaweb, atuando em projetos como Marketing de Conteúdo e Inbound para empreendedores e desenvolvedores

Deixe seu comentário

Comentários

  1. Agnaldo disse:

    Boa tarde, Kemel. Estou tentando usar o Let’s Encrypt e não consigo gerar o certificado. Recebo a mensagem DNS problem: NXDOMAIN looking up A for . Estou utilizando CentOS 7 e o meu servidor DNS está em outra máquina.

  2. Kemel, estou querendo migrar meus sites para o cloud hosting da Locaweb, mas queria poder usar o Let’s Encrypt nos sites que irei usar no CLOUD HOSTING I. Vou conseguir instalar e validar neste serviço Locaweb?

    • Kemel Zaidan disse:

      Oi Alexandre, tudo bem?

      Infelizmente o Cloud Hosting não suporta o Let’s Encrypt porque para executá-lo é preciso ter acesso de root na máquina e o cloud hosting oferece a mesma experiência da hospedagem, porém, com recursos reservados.

  3. Olá a todos.

    A Locaweb precisa correr pra disponibilizar os certificados Let’s Encrypt em TODAS as hospedagens. Não há limitação alguma para fazer isso e absolutamente não é necessário ter acesso root à máquina.

    Existem diversas alternativas pra gerar os certificados (certbot é só uma delas). Eu usei o scrip acme.sh via ssh em uma hospedagem compartilhada e gerei os certificados sem problema algum, em alguns segundos (método webroot).

    Infelizmente não temos como instalar o certificado por ssh ou pela interface web. Já existem diversos hosts que oferecem uma interface Lets Encrypt para gerar e instalar o certificado. Nesse caso a renovação automática também funciona, obviamente.

    Outra diferença é que não há necessidade de ter IP fixo. Na verdade o Lets Encrypt nem aceita o IP no certificado.

    Veja bem, se tivesse cpanel teria como instalar o certificado, mas existem diversas maneiras de a locaweb nos deixar instalar o certificado sem precisar de acesso root ou mesmo de cpanel/plesk.

    Sinceramente, já me arrependi de ter mudado meu plano antigo para outro plano da locaweb. E estou com um chamado aberto para ver se ao menos instalam meu certificado manualmente (e daqui 3 meses tenho que mandar colocar o novo).

    Agora vai 1 ano nisso até eu poder mudar. Mas quem sabe eles não usam minha sugestão e pegam os certificados na minha home, na pasta do .acme.sh (que tem renovacao automatica).

  4. Rubens disse:

    Como é aplicável isto nos sites hospedados na locaweb?

  5. Giovana disse:

    Olá! Esse SSL é adequado e funcional para uso em e-commerce?

    • Kemel Zaidan disse:

      Olá Giovana, tudo bem?

      O certificado emitido pelo Let’s Encrypt não tem diferenças fundamentais em relação a outros que estão a disposição no mercado. A única diferença mais significativa é que, por enquanto, eles tem validade de apenas 3 meses, fazendo com que você precise renovar o certificado com mais frequência. Como o processo pode ser automatizado, não chega a ser um empecilho.

Receba em primeira mão materiais e estratégias para o seu negócio.

Click to listen highlighted text!