Nesta página, mostramos como configurar um redirecionamento HTTP para HTTPS no balanceador de carga regional externo. Esta página é apenas para um balanceador de carga de aplicativo externo regional. Se você usar um balanceador de carga em um modo diferente, consulte uma das seguintes páginas:
Configure um redirecionamento de HTTP para HTTPS para um balanceador de carga de aplicativo clássico
Neste exemplo, mostramos como usar redirecionamentos do mapa de URL para redirecionar todas as solicitações de HTTP para HTTPS. Este exemplo mostra como configurar redirecionamentos usando as portas conhecidas 80 (para HTTP) e 443 (para HTTPS). No entanto, não é necessário usar esses números de porta específicos. Cada regra de encaminhamento para um balanceador de carga de aplicativo pode ter referência a uma única porta de 1 a 65535.
O HTTPS usa o TLS (SSL) para criptografar solicitações e respostas HTTP, tornando-o
mais seguro. Um site que usa HTTPS tem https://
no início
do URL, e não http://
.
Para novos balanceadores de carga HTTPS
Os balanceadores de carga de aplicativo externos regionais não oferecem suporte à criação de redirecionamentos HTTP para HTTPS durante a criação de um novo balanceador de carga. Primeiro, você precisará usar as instruções do guia de back-end do Compute Engine para criar um novo balanceador de carga. Depois, use as instruções na próxima seção para configurar um redirecionamento para todas as solicitações de HTTP para HTTPS.
Para este procedimento, presumimos que você já tenha um balanceador de carga HTTPS externo que esteja veiculando tráfego HTTPS na porta 443.
Para balanceadores de carga atuais
Se você já tiver um balanceador de carga de aplicativo HTTPS (chamado aqui de LB1) que atenda ao tráfego HTTPS na porta 443, crie um aplicativo HTTP parcial Balanceador de carga, chamado aqui de LB2, com a seguinte configuração:
- O mesmo endereço IP de front-end usado pelo LB1
- Um redirecionamento configurado no mapa de URLs.
Esse balanceador de carga HTTP parcial usa o mesmo endereço IP que o balanceador de carga HTTPS e redireciona solicitações HTTP para o front-end HTTPS do balanceador de carga.
Veja essa arquitetura no diagrama a seguir.
Como redirecionar o tráfego para o balanceador de carga HTTPS
Depois de verificar se o balanceador de carga HTTPS (LB1) está funcionando, é possível criar o balanceador de carga HTTP (LB2) parcial com o front-end configurado para redirecionar o tráfego para LB1.
Neste exemplo, usamos o código de resposta 301. Em vez disso, é possível usar um código de resposta diferente.
Para configurar o redirecionamento com gcloud
, importe um arquivo YAML e verifique se o
proxy HTTP de destino aponta para o mapa de URL que redireciona o
tráfego. Se você estiver usando o Console do Google Cloud, isso é ideal para você.
Os balanceadores de carga de aplicativo externos regionais não são compatíveis com o console do Google Cloud.
gcloud
- Crie um arquivo YAML
/tmp/web-map-http.yaml
. Este exemplo usa MOVED_PERMANENTLY_DEFAULT como código de resposta. - Crie o mapa de URL do balanceador de carga HTTP importando o arquivo
YAML. O nome desse mapa de URL é
web-map-http
. - Verifique se o mapa de URLs está atualizado. O mapa de URLs do balanceador de carga HTTP se parecerá com este:
- Crie um novo proxy HTTP de destino ou atualize um proxy HTTP de destino existente
usando
web-map-http
como o mapa de URL. - Crie uma regra de encaminhamento para encaminhar as solicitações recebidas para
o proxy. A sinalização
--address
especificalb-ipv4-1
, que é o mesmo endereço IP usado para o balanceador de carga HTTPS externo.
kind: compute#urlMap name: web-map-http defaultUrlRedirect: redirectResponseCode: MOVED_PERMANENTLY_DEFAULT httpsRedirect: True tests: - description: Test with no query parameters host: example.com path: /test/ expectedOutputUrl: https://example.com/test/ expectedRedirectResponseCode: 301 - description: Test with query parameters host: example.com path: /test/?parameter1=value1¶meter2=value2 expectedOutputUrl: https://example.com/test/?parameter1=value1¶meter2=value2 expectedRedirectResponseCode: 301
gcloud compute url-maps import web-map-http \ --source /tmp/web-map-http.yaml \ --region=REGION
Se você estiver atualizando um mapa de URL existente, o seguinte prompt será exibido:
Url Map [web-map-http] will be overwritten. Do you want to continue (Y/n)?
Para continuar, pressione Y.
gcloud compute url-maps describe web-map-http \ --region=REGION
creationTimestamp: '2020-03-23T10:53:44.976-07:00' defaultUrlRedirect: httpsRedirect: true redirectResponseCode: MOVED_PERMANENTLY_DEFAULT fingerprint: 3A5N_RLrED8= id: '2020316695093397831' kind: compute#urlMap name: web-map-http selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/urlMaps/web-map-http
gcloud compute target-http-proxies create http-lb-proxy \ --url-map=web-map-http \ --region=REGION
gcloud compute target-http-proxies update http-lb-proxy \ --url-map=web-map-http \ --region=REGION
gcloud compute forwarding-rules create http-content-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --network-tier=STANDARD \ --region=REGION \ --target-http-proxy=http-lb-proxy \ --target-http-proxy-region=REGION \ --ports=80
Como testar o redirecionamento de HTTP para HTTPS
Anote o endereço IP reservado que você está usando nos dois balanceadores de carga.
gcloud compute addresses describe lb-ipv4-1
--format="get(address)"
--region=REGION
Neste exemplo, suponha que o endereço IP reservado é 34.98.77.106
. O
URL http://34.98.77.106/
redireciona para https://34.98.77.106/
.
Depois de alguns minutos, teste isso executando o
comando curl
a seguir.
curl -v http://hostname.com
Exemplo de saída:
* Connected to 34.98.77.106 (34.98.77.106) port 80 (#0) > GET / HTTP/1.1 > Host: hostname.com > User-Agent: curl/7.64.0 > Accept: */* > < HTTP/1.1 301 Moved Permanently < Cache-Control: private < Content-Type: text/html; charset=UTF-8 < Referrer-Policy: no-referrer < Location: https://hostname.com < Content-Length: 220 < Date: Fri, 30 Jul 2021 21:32:25 GMT < <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://hostname.com">here</A>. </BODY></HTML> * Connection #0 to host hostname.com left intact
Procedimentos relacionados
Para usar o Terraform, consulte a guia de redirecionamento HTTP para HTTPS.
Para o GKE, consulte os redirecionamentos de HTTP para HTTPS na documentação do GKE.
Para balanceadores de carga de aplicativo internos, consulte Como configurar o redirecionamento de HTTP para HTTPS para balanceadores de carga de aplicativo internos.
Veja outros tipos de redirecionamento em Redirecionamentos de URL.