Let’s Encrypt: autoridade certificadora livre e aberta promete criptografar toda a Web

lets-encrypt

No ano passado (2014), um grupo de especialistas de segurança na Internet da Universidade de Michigan, Mozilla e a Electronic Frontier Foundation criaram uma nova autoridade certificadora (AC) denominada Let’s Encrypt (“Vamos Criptografar”). Além disso, contém o apoio da Cisco, Akamai e outros. Posteriormente,  entrou no rol de trabalhos colaborativos da Linux Foundation. O projeto Let’s Encrypt visa emitir certificados digitais SSL/TLS gratuitos para qualquer site que necessitar. Seu primeiro certificado digital foi assinado digitalmente em meados de setembro de 2015. Por fim, a autoridade certificadora Let’s Encrypt promete emissão de certificados sem nenhum custo, transparência, segurança e cooperativismo; já que é uma a iniciativa controlada por várias empresas que possuem o objetivo de beneficiar a comunidade.

Em resumo,  o projeto permitirá que qualquer site da internet possa proteger seus usuários com certificados SSL/TLS que criptografam todos os dados enviados entre os usuários e o site. A iniciativa também torna a implementação HTTPS mais fácil para qualquer site ou site de compras online, afim de garantir a segurança dos dados de seus clientes.

Como funciona?

Uma visão geral da sua arquitetura, podemos destacar 2 aspectos importantes:

1 – Protocolo ACME (Automatic Certificate Management Environment)

Em resumo, ele envolve vários pedidos (ou desafios) para o servidor web onde o certificado está presente. Com base nas respostas, a Validação do Domínio do inscrito é assegurada por uso de um par de chaves. Existirá um cliente agente ACME configurado no servidor do domínio cadastrado que será consultado pelo servidor da autoridade certificadora (AC). Clique aqui, para informações técnicas do seu funcionamento

howitworks_challenge

Domain Validation / Technology

2 – Emissão de Certificado ou Revogação de certificados automáticos – 

Uma vez que o agente tem um par de chaves autorizadas, a solicitação de renovação e revogação dos certificados é simples: basta enviar mensagens de gerenciamento de certificado e assiná-las com o par de chaves autorizadas. Para obter um certificado para o domínio, o agente constrói um PKCS que solicita a CA Let’s Encrypt a emissão de um certificado para o domínio em questão, com a chave pública informada.

howitworks_certificate

Certificate Issuance and Revocation

Em outras palavras, a ideia central do Let’s Encrypt é que o nível básico de validação de identidade pela autoridade certificadora possa ser realizado automaticamente (verificação básica, chamada Validação de Domínio, vide descrição acima). Assim, como a validação e, consequentemente, a emissão de certificado poderá ser realizada sem intervenção humana, não há quase nenhum custo marginal associado à emissão de um certificado para um novo domínio. Isto significa que este serviço pode ser prestado em grande escala em um modelo sem fins de lucro, sem custo para o usuário final que recebe o certificado.

Nosso objetivo é permitir que um administrador de sistemas leve menos de um minuto para obter e instalar um certificado confiável, sem nenhum custo, executando um único comando em um servidor. Usuários de navegadores Web não têm que mudar ou atualizar nada para que os certificados Let’s Encrypt sejam aceitos; eles simplesmente navegam na Web como de costume e estarão automaticamente protegidos.

No validation emails, no complicated configuration editing, no expired certificates breaking your website. And of course, because Let’s Encrypt provides certificates for free, no need to arrange payment.

Como obter um certificado?

Mesmo que o 1a. certificado, assinado pela CA Let’s Encrypt, tenha sido em meados de setembro de 2015, e já tenha havido mais de 11 mil emissões de certificados; o projeto, ainda, encontra-se em estágio de transição entre o beta e o stable de desenvolvimento. Pois, todos esses certificados foram emitidos com status privado.

Com publicação de hoje (3 de dezembro), o projeto Let’s Encrypt abriu o beta desenvolvimento ao público; permitindo que qualquer um possa requisitar um certificado. Para isso, é preciso preencher uma formulário de requisição e aguardar contato para mais informações.

Como ambiente de teste, fiz a requisição de um certificado para um domínio X e segui esse tutorial de instalação e configuração no Debian. Com base nisso, segue um passo-a-passo de como emitir, assinar e usar um certificado do Let’s Encrypt 😉

O projeto Let’s Encrypt ainda está em estágio beta. Uso por sua conta e risco 😉

PASSO 1

Com acesso root ao servidor web (no meu caso Apache) que deseja usar o certificado, baixar os sources do projeto:

$ git clone https://github.com/letsencrypt/letsencrypt

Depois entre no diretório escolhido usado para baixá-lo e entre na pasta letsencrypt. Execute o comando ./letsencrypt-auto para preparar o ambiente (baixando pacotes e dependências):

Muitos pacotes e dependências são instalados nessa etapa. Espere o fim do processo para continuar.
$ cd letsencrypt
$ ./letsencrypt-auto

PASSO 2

Escolha um site Vhost, configurado no seu ambiente, para configurar o futuro certificado. Entre no arquivo correspondente (/etc/apache2/sites-available/{{conf}}) e insira a seguinte linha:

Esse procedimento é fundamental!! Os servidores do Let’s Encrypt irão consultar se esse método foi configurado gerando desafios (consultas) contra o domínio que será informado.

PASSO 3

Reinicie o apache! Depois esse execute esse comando para requisitar um novo certificado:

$ /root/.local/share/letsencrypt/bin/letsencrypt –renew-by-default -a webroot –webroot-path {{diretorio /var/www do seu site}} –server https://acme-v01.api.letsencrypt.org/directory –email {{email do admin do sistema}} –text –agree-tos -d {{domínio}} auth

Onde,

  • {{diretorio /var/www do seu site}} = /var/www/seu_site
  • {{email do admin do sistema}} = e-mail do administrado do serviço – importante para contatos futuros
  • {{domínio}} = www.seusite.com, por exemplo

Pronto!! Você deverá ver uma mensagem como essa:

Por fim, adicione no conf do Vhost do seu site o seguinte conteúdo:

PASSO FINAL

Acesse um navegador e informe o domínio do seu site; e veja o resultado 😉

resultado-letsencrypt-LD


Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários


VOCÊ TAMBÉM PODERÁ LER...

  • Fernando Santos

    Olá! desculpem se eu estiver falando bobagem, mas isso não iria ser uma complicação para quem roda um servidor linux utilizando o squid? Afinal o squid só trata http e não https. Se alguém puder explicar melhor eu agradeço.

    • linux10complica

      Squid versão 3.x consegue tratar HTTPS https://www.howtoforge.com/filtering-https-traffic-with-squid. A limitação do Squid, nesse quesito, se refere a quando usado em modo transparente.

    • William R. Fernandes

      Não se pode pensar assim, primeiro a segurança na comunicação depois o bloqueio da comunicação. Já existe alternativas para bloquear HTTPS no Squid.

  • Valter Schmaltz

    Sera possivel usar estes certificados com FTP?

    • linux10complica

      O propósito inicial é para WebServers – apache e nginx. Quem sabe no futuro 😉

  • Luis Fernando Pimenta

    Funciona para subdomínios ?

  • William R. Fernandes

    Ótimo artigo pessoal!

    Muito bom o tutorial vai ajudar muita gente. Acho que vale apena atualizar o tutorial com o Certbot, hoje é recomendado pela Let’s Encrypt!

    :)