Como habilitar HTTPS para cache de verniz usando Hitch no CentOS-Rhel 8

Como habilitar HTTPS para cache de verniz usando Hitch no CentOS-Rhel 8

Cache de verniz não tem apoio nativo para SSL/TLS e outros protocolos associados à porta 443. Se você está usando Cache de verniz Para aumentar o desempenho do seu aplicativo da web, você precisa instalar e configurar outro software chamado SSL/TLS proxy de rescisão, para trabalhar ao lado Cache de verniz para ativar Https.

O Pegar é um proxy gratuito de código aberto, baseado em Libev e SSL/TLS escalável projetado para Cache de verniz, que atualmente funciona no Linux, OpenBSD, FreeBSD e Macosx. Ele termina as conexões TLS/SSL ouvindo na porta 443 (a porta padrão para Https conexões) e encaminha o tráfego não criptografado para Cache de verniz, No entanto, deve funcionar com outros back -ends também.

Ele suporta TLS1.2 e TLS1.3 e legado TLS 1.0/1.1, apoia Alpn (Negociação do protocolo da camada de aplicação) e Npn (Próxima negociação de protocolo) para Http/2, Um protocolo proxy para sinalizar IP/porta do cliente para um back -end, conexões de soquete de domínio Unix com a origem, Sni (Indicação do nome do servidor), com e sem certificados curinga. Além disso, funciona bem para grandes instalações que exigem até 15.000 Sockets de escuta e 500.000 certificados.

Como uma continuação de nossos dois artigos anteriores sobre a instalação Cache de verniz para Nginx e Apache Servidores HTTP, este guia mostra para ativar Https para Cache de verniz usando Hitch TLS proxy sobre CENTOS/RHEL 8.

Diagrama lógico da nossa configuração

Este guia pressupõe que você instalou Verniz para Nginx ou Apache servidor da web, caso contrário, consulte:

  • Como instalar o Varnish Cache 6 para o Nginx Web Server no CentOS/RHEL 8
  • Como instalar o Varnish Cache 6 para o Apache Web Server no CentOS/Rhel 8

Etapa 1: Instale o engate no CentOS/Rhel 8

1. O Pegar o pacote é fornecido no EPEL (Pacotes extras para Enterprise Linux) repositório. Para instalá -lo, primeiro habilite EPEL no seu sistema e depois instale o pacote depois. Se você não tem OpenSSL pacote instalado, instale -o também.

# dnf install # dnf install hitch openssl 
Instale o engate no CentOS 8

2. Quando a instalação do pacote estiver concluída, você terá que configurar Cache de verniz trabalhar Pegar. Você também precisa configurar Pegar Para usar o seu SSL/TLS certificados e Verniz como um Processo interno. O principal arquivo de configuração do hitch está localizado em /etc/engate/engate.conf, que é explicado abaixo.

Etapa 2: Configurando o cache de verniz para engate

3. Em seguida, ativar Verniz Para ouvir uma porta adicional (8443 no nosso caso) usando o Proxy suporte de protocolo, para comunicações com Pegar.

Então abra o verniz Systemd arquivo de serviço para edição.

# SystemCtl Edit --full Varnish 

Procure a linha Exectart e adicione um adicional -a Bandeira com o valor 127.0.0.1: 8443, proxy. Usando um valor de 127.0.0.1: 8443 significa que o verniz aceitará apenas a conexão interna (de processos em execução no mesmo servidor i.e engate neste caso), mas não conexões externas.

ExecStart =/usr/sbin/varnishd -a: 80 -a 127.0.0.1: 8443, proxy -f/etc/varnish/padrão.Vcl -s Malloc, 256m 
Defina o verniz, ouça porta para engate

Salve o arquivo e reinicie o serviço de verniz para aplicar as últimas alterações.

# SystemCTL Reiniciar verniz 

Etapa 3: Obtendo certificados SSL/TLS

4. Nesta seção, explicaremos como criar o SSL/TLS pacote de certificado a ser usado em Pegar. Para este guia, explicaremos as diferentes opções de como usar um certificado autoassinado, certificado comercial ou um de Vamos criptografar.

Para criar um certificado autoassinado (que você deve usar apenas em um ambiente de teste local), você pode usar o OpenSSL ferramenta.

# mkdir/etc/ssl/tecmint.LAN # CD/etc/SSL/Tecmint.LAN/ # OpenSSL Req -x509 -Nodes -Days 365 -NewKey RSA: 2048 -TECMINT TECMINT.LAN.chave -Tecmint.LAN.Crt 

Em seguida, crie um pacote do certificado e chave da seguinte maneira.

# Cat Tecmint.Crt Tecmint.Chave> Tecmint.PEM 

Observação: Para uso da produção, você pode comprar um certificado de um comercial Autoridade de certificado (Ca) ou pegue um certificado gratuito, automatizado e totalmente reconhecido de Vamos criptografar. Em seguida, crie um pacote PEM.

Se você comprou um certificado de um comercial Ca, Você precisa mesclar a chave privada, o certificado e o pacote de CA, como mostrado.

# Exemplo de gato.com.exemplo -chave.com.Exemplo de CRT.COM-CA-Bundle.CRT>/etc/ssl/exemplo.com.PEM 

Para Vamos criptografar, O certificado, a chave privada e a cadeia completa serão armazenados em /etc/letSencrypt/vive/exemplo.coma, Portanto, crie o pacote como mostrado.

# gato/etc/letSencrypt/vive/exemplo.com/fullchain.PEM/etc/letSencrypt/vive/exemplo.com/privky.PEM>/etc/letSencrypt/vive/exemplo.com/exemplo.com_bundle.PEM 

Etapa 4: Configurando e iniciando engate

5. Em seguida, configure Verniz como um back -end para Pegar e especificar o SSL/TLS Arquivos de certificado para usar para Https, no Pegar Arquivo de configuração principal, abra -o para edição.

# vi/etc/engate/engate.conf 

O front-end A seção define os endereços IP e porta Engate vai ouvir. A configuração padrão é ouvir em todos IPv4 e IPv6 interfaces anexadas no servidor e são executadas na porta 443 e lidar com a entrada Https solicitações, entregando -os a Verniz.

Altere o padrão Processo interno porta proxy de 6086 para 8443 (a porta usada para encaminhar solicitações para Verniz) no Pegar arquivo de configuração, usando o Processo interno parâmetro. Além disso, especifique o arquivo de certificado usando o PEM-FILE parâmetro como mostrado.

back -end = "[127.0.0.1]: 8443 " #PEM-DIR ="/etc/pki/tls/privado "PEM-FILE ="/etc/SSL/Tecmint.LAN/TECMINT.Pem " 
Configurar engate como proxy SSL/TLS para verniz

Salve o arquivo e feche-o.

6. Agora comece o pegar Serviço e habilitá -lo para iniciar automaticamente na inicialização do sistema. Observe que o --agora Alterne quando usado com Ativar, também inicia um serviço Systemd e verifique o status para ver se está em funcionamento da seguinte maneira.

# SystemCtl Ativar -Now Hitch # SystemCtl Status Hitch 
Verifique o status do engate

7. Antes de prosseguir para testar se o seu site/aplicativo está em execução agora Https, você precisa permitir o Https Porta de serviço 443 no firewall para permitir que as solicitações destinadas a essa porta no servidor passem pelo firewall.

# firewall-cmd-zone = public --permanent --add-service = https # firewall-cmd--reload 

Etapa 5: Testando a terminação SSL/TLS com configuração

8. Agora é hora de testar o Hitch de cache de verniz configurar. Abra um navegador da web e use seu domínio ou IP do servidor para navegar Https.

https: // www.exemplo.com ou https: // server_ip/ 

Depois que a página de índice do seu aplicativo da web estiver carregada, verifique o Http cabeçalhos para confirmar que o conteúdo está sendo servido via Cache de verniz.

Para fazer isso, clique com o botão direito do mouse na página da web carregada, selecione Inspecionar Da lista de opções para abrir as ferramentas do desenvolvedor. Em seguida, clique no Rede guia, e recarregar A página, em seguida, selecione uma solicitação para visualizar os cabeçalhos HTTP, conforme destacado na captura de tela a seguir.

Verifique a configuração HTTPS no cache de verniz

Etapa 6: redirecionando http para https em cache de verniz

9. Para executar seu site em Https Só você precisa redirecionar tudo Http tráfego para Https. Você pode fazer isso adicionando a seguinte configuração no seu arquivo de configuração de engate.

# vi/etc/engate/engate.conf 

Primeiro, adicione a linha importar std; logo abaixo VLC 4.0;, Então procure o vlc_recv Sub -rotina, que é a primeira sub -rotina VCL executada imediatamente após Cache de verniz analisou a solicitação do cliente em sua estrutura básica de dados. É onde podemos modificar os cabeçalhos da solicitação e executar um sintetizador para redirecionar solicitações do cliente.

Modifique -o para ficar assim.

sub vcl_recv if (std.porta (servidor.ip) != 443) set req.http.Location = "https: //" + req.http.host + req.url; retornar (sintetizador (301));  

Observe que o Proxy Protocolo Ativa Verniz ver Hitch's porta de escuta 443 de servidor.IP variável. Então a linha std.porta (servidor.ip) Retorna o número da porta em que a conexão do cliente foi recebida.

Se a porta não for 443 para Https (conforme verificado por (std.porta (servidor.ip) != 443)), a sub -rotina definirá o cabeçalho de localização HTTP da solicitação (Definir req.http.localização) para uma solicitação segura (“https: //” + Req.http.hospedar + Req.url) simplesmente pedir ao navegador da web para carregar um Https versão da página da web (eu.E URL Redirection).

O Localização O cabeçalho será enviado para o vcl_synth sub -rotina (que é chamada usando Retorno (sintetizador (301))) com um código de status HTTP de 301 (Movido Permanentemente).

10. Em seguida, adicione o seguinte Vcl_synth Sub -rotina (Um de seus muitos casos de uso é redirecionar usuários), para processar o sintetizador acima.

sub vcl_synth if (resp.status == 301) defina resp.http.Localização = Req.http.localização; Set Resp.status = 301; retornar (entregar);  

Ele verifica se o status de resposta é 301, O cabeçalho de localização HTTP na resposta é definido para o cabeçalho de localização HTTP na solicitação, que é de fato um redirecionamento para HTTPS e executa uma ação de entrega.

A ação de entrega cria uma resposta com a resposta do back -end, armazena a resposta no cache e a envia ao cliente.

Configurar engate para redirecionar http para https

Salve o arquivo e feche-o.

11. Mais uma vez, aplique as novas alterações na configuração do verniz reiniciando o serviço. Em seguida, use a ferramenta de linha de comando CURL para confirmar o redirecionamento de Http para Https.

# Systemctl Reiniciar o varnish # Curl -i http: // eaxmple.coma 
Verifique http para redirecionar https

Do navegador, a resposta também é a mesma que mostrou na captura de tela a seguir.

Verifique o redirecionamento HTTP para HTTPS no navegador

Esperamos que tudo tenha funcionado bem até este ponto. Caso contrário, deixe um comentário ou perguntas através do formulário de feedback abaixo. Para quaisquer opções de configuração avançada, vá para a documentação do cache do verniz e a documentação do engate.