Pesquisa de site

Como habilitar HTTPS para Varnish Cache usando Hitch no CentOS/RHEL 8?


No mundo atual de segurança na Internet, habilitar HTTPS em seu site é crucial para garantir a privacidade e segurança dos dados de seus usuários. Uma maneira de conseguir isso é usar Varnish Cache and Hitch, um proxy TLS leve, para descarregar o processamento SSL/TLS do Varnish.

Neste artigo, iremos guiá-lo através do processo de ativação de HTTPS para Varnish Cache usando Hitch no CentOS/RHEL 8.

Pré-requisitos

Antes de começarmos, certifique-se de ter o seguinte -

  • Um servidor CentOS/RHEL 8

  • Acesso root ao servidor

  • Cache e engate de verniz instalados

  • Um certificado SSL/TLS válido e uma chave privada

Se você não tiver o Varnish Cache e o Hitch instalados, poderá instalá-los seguindo estes comandos -

sudo dnf install varnish hitch

Etapa 1: configurar o Hitch

Primeiro, precisamos configurar o Hitch para escutar em uma porta e encaminhar solicitações para o Varnish Cache. Para fazer isso, criaremos um novo arquivo de configuração /etc/hitch/hitch.conf.

Abra o arquivo em seu editor de texto favorito -

sudo nano /etc/hitch/hitch.conf

Adicione o seguinte conteúdo ao arquivo -

# Listen on port 443
frontend = "[*]:443"

# Forward requests to Varnish Cache
backend = "[::1]:6081"

# Use the SSL/TLS certificate and private key
pem-file = "/path/to/your/certificate.pem"

Substitua /path/to/your/certificate.pem pelo caminho para seu certificado SSL/TLS e chave privada.

Salve e feche o arquivo.

Etapa 2: configurar o cache do Varnish

Em seguida, precisamos configurar o Varnish Cache para usar o Hitch como seu proxy SSL/TLS.

Abra o arquivo de configuração do Varnish Cache /etc/varnish/varnish.params em seu editor de texto -

sudo nano /etc/varnish/varnish.params

Adicione o seguinte conteúdo ao arquivo -

# Use Hitch as the SSL/TLS proxy
VARNISH_BACKEND_PORT=8443
VARNISH_BACKEND_SSL=on
VARNISH_BACKEND_SSL_VERIFY_PEER=on
VARNISH_BACKEND_TLS_CERT=/path/to/your/certificate.pem
VARNISH_BACKEND_TLS_KEY=/path/to/your/certificate.pem

Substitua /path/to/your/certificate.pem pelo caminho para seu certificado SSL/TLS e chave privada.

Salve e feche o arquivo.

Etapa 3: reiniciar os serviços

Por fim, reinicie os serviços Hitch e Varnish Cache para aplicar as novas configurações -

sudo systemctl restart hitch
sudo systemctl restart varnish

Embora as etapas acima sejam suficientes para habilitar HTTPS para Varnish Cache usando Hitch no CentOS/RHEL 8, existem algumas coisas adicionais que você pode fazer para aumentar ainda mais a segurança do seu site.

Use uma autoridade de certificação (CA)

Em vez de usar um certificado SSL/TLS autoassinado, considere usar um certificado emitido por uma Autoridade de Certificação (CA) confiável. Isso melhorará a confiabilidade do seu site aos olhos dos usuários e evitará que mensagens de aviso apareçam em seus navegadores.

Você pode obter um certificado de uma CA confiável comprando um de um fornecedor comercial ou usando uma CA gratuita como Let's Encrypt.

Implementar HSTS

HTTP Strict Transport Security (HSTS) é um recurso de segurança que instrui os navegadores da web a se comunicarem com seu site apenas por HTTPS por um período de tempo especificado. Isso pode evitar ataques de downgrade e melhorar a segurança geral do seu site.

Para implementar HSTS, adicione o seguinte cabeçalho ao arquivo de configuração do Hitch -

# Enable HSTS for 1 year
tls-protos = TLSv1.2
ciphers = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
hsts = on
hsts-max-age = 31536000
hsts-include-subdomains = on

Isso ativará o HSTS por 1 ano e incluirá todos os subdomínios.

Implementar grampeamento OCSP

O grampeamento do Online Certificate Status Protocol (OCSP) é um recurso de segurança que permite ao servidor obter o status de revogação de seu certificado SSL/TLS da CA e fornecê-lo ao cliente. Isso pode melhorar o desempenho e a segurança do seu site, reduzindo o tempo necessário para verificar o status de revogação do certificado.

Para implementar o grampeamento OCSP, adicione as seguintes linhas ao seu arquivo de configuração do Hitch -

# Enable OCSP Stapling
ocsp-dir = "/var/lib/hitch/ocsp"
verify-ocsp = on

Isso ativará o grampeamento OCSP e armazenará as respostas no diretório /var/lib/hitch/ocsp.

Ao implementar esses recursos de segurança adicionais, você pode aumentar ainda mais a segurança e a confiabilidade do seu site.

Aqui estão algumas etapas adicionais que você pode seguir para otimizar o desempenho do Varnish Cache and Hitch -

Usar HTTP/2

HTTP/2 é uma revisão importante do protocolo HTTP que melhora significativamente o desempenho das páginas da web. Ele oferece suporte a recursos como push de servidor, multiplexação e compactação de cabeçalho, que podem reduzir o número de solicitações e melhorar a velocidade de carregamento do seu site.

Para usar HTTP/2, você precisa habilitá-lo no Varnish Cache e no Hitch. Veja como -

No Varnish Cache, adicione a seguinte linha ao arquivo /etc/varnish/varnish.params -

# Enable HTTP/2
VARNISH_LISTEN_PORT=80,8080 v1

No Hitch, adicione a seguinte linha ao arquivo /etc/hitch/hitch.conf -

# Enable HTTP/2
alpn-protos = h2,h2c,http/1.1

Depois de fazer essas alterações, reinicie os serviços Varnish Cache e Hitch -

sudo systemctl restart varnish
sudo systemctl restart hitch

Cache de conteúdo estático

O armazenamento em cache de conteúdo estático, como imagens, CSS e arquivos JavaScript, pode melhorar significativamente o desempenho do seu site. Ao armazenar esses arquivos em cache no Varnish Cache, você pode reduzir o número de solicitações e acelerar o tempo de carregamento para seus usuários.

Para armazenar em cache o conteúdo estático no Varnish Cache, você precisa adicionar as seguintes linhas ao arquivo de configuração do Varnish Cache (/etc/varnish/default.vcl) -

# Cache static content for 1 day
sub vcl_recv {
   if (req.url ~ "\.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|css|js)(\?.*|)$") {
      unset req.http.Cookie;
      set req.url = regsub(req.url, "\?.*$", "");
      set req.http.static = "YES";
      if (req.request == "GET") {
         return (hash);
      }
      return (pass);
   }
}

sub vcl_backend_response {
   if (bereq.http.static == "YES") {
      set beresp.ttl = 1d;
   }
}

Isso armazenará em cache o conteúdo estático por 1 dia e ignorará o cache para outras solicitações.

Monitore o desempenho

Por fim, é importante monitorar o desempenho do seu site e fazer os ajustes necessários. Você pode usar ferramentas como Varnishstat e Hitchstats para monitorar o desempenho do Varnish Cache e do Hitch, respectivamente.

Para usar o Varnishstat, execute o seguinte comando -

varnishstat

Para usar o Hitchstats, execute o seguinte comando -

hitch-stats --frontend=127.0.0.1:8443

Essas ferramentas fornecerão informações valiosas sobre o desempenho do seu site e ajudarão a identificar áreas de melhoria.

Seguindo essas etapas, você pode otimizar o desempenho do Varnish Cache and Hitch e fornecer aos seus usuários uma experiência de navegação rápida e segura.

Conclusão

Neste artigo, mostramos como habilitar HTTPS para Varnish Cache usando Hitch no CentOS/RHEL 8. Ao descarregar o processamento SSL/TLS para Hitch, melhoramos o desempenho e a segurança de nosso site. Lembre-se de manter seu certificado SSL/TLS e sua chave privada seguros e atualizados para garantir a segurança contínua dos dados de seus usuários.

Artigos relacionados: