DevSecOps

8 fev, 2017

Certificados SSL Let’s Encrypt gratuitos no Jelastic: integração fora da caixa com as pilhas de software mais populares

Publicidade

Uma das principais questões que devemos lidar ao hospedar aplicativos de produção é garantir a segurança deles. A abordagem muito básica e comumente utilizada para a troca segura de dados é criptografar o tráfego de aplicativos com o protocolo HTTPS.

Além disso, desde 1 de janeiro de 2017, um dos navegadores mais populares – o Google Chrome – começou a marcar como não seguras todos os sites que solicitam especificação de senha ou detalhes de cartão de crédito e que não estão protegidos com SSL. Tal novidade torna a integração de criptografia ainda mais essencial.

No entanto, emitir e configurar certificado SSL personalizado para um projeto pode ser uma tarefa bastante complicada e demorada. Let’s Encrypt (LE) é uma autoridade de certificação livre e aberta, que permite simplificar e automatizar o processo de integração de certificados SSL confiáveis.

A tendência geral de mover a Web para HTTPS implica na automatização completa da emissão e aplicação dos certificados SSL personalizados. Assim, os desenvolvedores Jelastic fizeram um excelente trabalho ao combinar o serviço Let’s Encrypt e o Jelastic Packaging Standard (JPS), para implementar uma solução que permite livrar-se da renovação regular de certificados.

A principal vantagem desta solução é uma integração exclusiva com o mais popular balanceador de carga e pilhas de servidor de aplicativos. Dessa forma, dá a possibilidade de garantir livremente a maioria das aplicações existentes que são executadas no Jelastic.

Sendo fornecido como um add-on, esta solução pode ser facilmente instalada em qualquer ambiente com os seguintes servidores como um ponto de entrada (a lista é constantemente estendida):

  • Balanceadores de carga – NGINX, Apache LB, HAProxy
  • Servidores de aplicativos Java – Tomcat 6/7/8/9, TomEE, GlassFish 3/4, Jetty 6
  • Servidores de aplicativos PHP – Apache PHP, NGINX PHP
  • Servidores de aplicativos Ruby – Apache Ruby, NGINX Ruby

O suporte a outras pilhas vai ser implementado adiante – por favor, deixe-nos saber se algum em particular é necessário para acelerar a sua integração.

Como funciona

Durante a instalação, o add-on faz o download e configura o cliente Let’s Encrypt (chamado agente de gerenciamento de certificados – CMA), solicita certificados de Let’s Encrypt Certificate Authority (CA), aplica certificados emitidos para executar a pilha de software de acordo com seus específicos SSL de integração e adiciona um cron especial para iniciar a atualização de certificados quando a data de validade está próxima.

Validação de Controle de Domínio

Após a solicitação de emissão de certificados, Let’s Encrypt CA verifica o ponto de entrada do ambiente na porta 443 para provar que o determinado servidor web controla os domínios especificados. Aqui, durante o processo de validação de domínio, todo o tráfego HTTPS de entrada será internamente encaminhado para a porta 9999 personalizada, onde o CMA correspondente é executado. Assim, pode ocorrer uma queda breve de 2 segundos no processamento de tráfego HTTPS durante o tempo deste procedimento de verificação. Ao mesmo tempo, todo o tráfego HTTP, recebido na porta 80 por padrão, continua sendo processado sem qualquer interrupção.

No caso de uma camada conter vários nodes do mesmo tipo, durante o período de atualização todo o tráfego HTTPS recebido será adicionalmente roteado para o node mestre onde o CMA é executado. Isso é conseguido através da definição de regras de roteamento DNAT temporárias especiais para que o pedido de validação de domínio possa ser tratado pelo CMA.

Como esse redirecionamento é necessário somente durante a validação do domínio, essas configurações DNAT especiais serão removidas logo após a confirmação da correspondência do nome do host.

Após validação de domínio bem-sucedida, o CMA obtém a capacidade de solicitar, renovar e revogar certificados SSL para domínios específicos, de modo que ele gerará automaticamente o par de chaves SSL apropriado. Como resultado, os certificados emitidos serão propagados para todos os nodes dentro da camada de ponto de entrada via Jelastic API, de modo que o aplicativo será configurado corretamente para o trabalho adicional via HTTPS.

Apesar da longa descrição, todas essas operações são tratadas apenas em questão de minutos. Agora, vamos descobrir como realmente iniciar a instalação do add-on Let’s Encrypt.

Instalação do add-on Let’s Encrypt SSL

Para obter o certificado SSL para o nome do host de ambiente, siga da seguinte forma:

1.Efetue login no painel do Jelastic e clique em Import no painel de ferramentas superior.

2. Alterne para a guia URL dentro do quadro aberto e especifique o link para o arquivo jps a partir do repositório add-on apropriado: https://github.com/jelastic-jps/lets-encrypt/blob/master/manifest.jps

Clique em Import para prosseguir.

3. Depois que os dados necessários são obtidos, você verá a janela de instalação do add-on Let’s Encrypt SSL.

Aqui, você pode escolher entre duas opções:

  • Domínio interno – cria certificados SSL inválido para o URL interno do ambiente (env_name.{hoster_domain}) a ser utilizado para fins de teste
  • Domínio personalizado – permite obter certificado SSL válido para o ambiente com os domínios externos anexados; para declarar vários domínios, use espaço, vírgula ou separador ponto-e-vírgula, por exemplo:

Preste atenção que os domínios personalizados especificados devem ser vinculados ao ambiente previamente, via CNAME ou A Record. Caso contrário, o serviço LE será instalado, mas a criptografia não funcionará devido à falha de verificação de domínio.

Em seguida, selecione o ambiente de destino da lista de Nomes de Ambiente correspondente (deixando o valor dos Nodes automaticamente escolhidos inalterado) e clique em Install para iniciar a adição de SSL.

Observe que o add-on requer o endereço IP público para o trabalho adequado. Assim, caso o ponto de entrada do ambiente não o tenha, ele será anexado automaticamente durante a instalação (lembre-se de que o IP público é uma opção paga – o custo pode ser encontrado dentro do quadro Quotas & Preços).

4. O processo de instalação pode demorar vários minutos para validar o nome de domínio ownage, emitir certificados por Let’s Encrypt e aplicá-los.

Quando terminar, você pode acessar a seção Configurações > SSL personalizado para verificar se o suporte HTTPS está ativo e localizar a data de validade do certificado.

5. Você também pode garantir que tudo funciona como pretendido ao tentar abrir o aplicativo por HTTPS:

Como você pode ver, o ambiente é acessível e a conexão estabelecida é segura e confiável para o navegador.

Atualização de certificados Let’s Encrypt

Os certificados atribuídos permanecerão válidos por 90 dias (a data de expiração pode ser vista na seção Configurações > Personalizar SSL, como foi mostrado acima). O sistema verificará a expiração uma vez por dia e iniciará a renovação 30 dias antes (ou seja, o processo de atualização será executado às 3h da manhã por um cron especial). Você será notificado sobre isso por e-mail. Dessa forma, a criptografia do aplicativo permanecerá permanentemente válida sem qualquer solicitação de envolvimento do administrador do sistema.

Caso sua aplicação esteja em execução na Plataforma Jelastic de versão inferior à 4.9.5, você precisará iniciar a atualização de certificados manualmente com um único clique de botão ao receber a notificação de e-mail apropriada.

Além disso, esta operação pode ser realizada manualmente a qualquer momento. Para isso, clique em Add-ons ao lado do correspondente node do balanceador de carga ou de cálculo.

Em seguida, selecione o botão Update para o add-on Let’s Encrypt SSL na guia aberta e confirme esta ação no pop-up exibido.

Remoção do Add-On Let’s Encrypt SSL

Se necessário, o add-on Let’s Encrypt SSL pode ser facilmente removido do ambiente. Para fazer isso, navegue até a guia Add-ons clicando no botão com o mesmo nome ao lado do node de cálculo (balanceador de carga) no ambiente correspondente:

Dentro da planilha Let’s Encrypt SSL, expanda a lista de opções no canto superior direito e selecione Uninstall. Após a confirmação, o add-on será removido e os certificados anexados serão desativados.

Dica: No caso de precisar redefinir nomes de domínio de ambiente, o certificado SSL é emitido para isso. Basta reinstalar o add-on com novos parâmetros (ou seja, nenhuma remoção preliminar é necessária). Com isso, indicar os mesmos domínios fará jus a renovação de certificados.

É isso aí! Agora você sabe como instalar e gerenciar add-on Let’s Encrypt para a configuração SSL automática personalizada do seu ambiente, para que você possa proteger quase qualquer aplicativo em pouco tempo, completamente de graça e sem quase nenhum esforço.

 

***

Tetiana Markova faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização da autora, e você pode acompanhar o artigo em inglês no link: http://blog.jelastic.com/2017/02/01/free-ssl-certificates-with-lets-encrypt/