Esta página mostra como configurar um redirecionamento de HTTP para HTTPS para o balanceador de carga de aplicações externo regional. Esta página destina-se apenas a um Application Load Balancer externo regional. Se usar um balanceador de carga num modo diferente, consulte uma das seguintes páginas:
Configure um redirecionamento de HTTP para HTTPS para um balanceador de carga de aplicações clássico
Este exemplo mostra como usar redirecionamentos do mapa de URLs para redirecionar todos os pedidos de HTTP para HTTPS. Este exemplo mostra como configurar redirecionamentos através das portas conhecidas 80 (para HTTP) e 443 (para HTTPS). No entanto, não tem de usar estes números de porta específicos. Cada regra de encaminhamento para um Application Load Balancer pode referenciar uma porta única de 1 a 65535.
O HTTPS usa TLS (SSL) para encriptar pedidos e respostas HTTP, o que o torna
mais seguro. Um Website que usa HTTPS tem https://
no início
do respetivo URL em vez de http://
.
Para novos balanceadores de carga HTTPS
Os balanceadores de carga de aplicações externos regionais não suportam a criação de redirecionamentos de HTTP para HTTPS durante a criação de um novo balanceador de carga. Primeiro, tem de usar as instruções do guia do back-end do Compute Engine para criar um novo equilibrador de carga. Em seguida, pode usar as instruções na secção seguinte para configurar um redirecionamento para todos os pedidos de HTTP para HTTPS.
Este procedimento pressupõe que já tem um balanceador de carga HTTPS externo que publica tráfego HTTPS na porta 443.
Para balanceadores de carga existentes
Se já tiver um Application Load Balancer HTTPS (denominado aqui LB1) que esteja a publicar tráfego HTTPS na porta 443, tem de criar um Application Load Balancer HTTP parcial (denominado aqui LB2) com a seguinte configuração:
- O mesmo endereço IP de front-end usado pelo LB1
- Um redirecionamento configurado no mapa de URLs
Este balanceador de carga HTTP parcial usa o mesmo endereço IP que o seu balanceador de carga HTTPS e redireciona os pedidos HTTP para o front-end HTTPS do seu balanceador de carga.
Esta arquitetura é apresentada no diagrama seguinte.
Redirecionar tráfego para o balanceador de carga HTTPS
Depois de verificar que o balanceador de carga HTTPS (LB1) está a funcionar, pode criar o balanceador de carga HTTP parcial (LB2) com o respetivo front-end configurado para redirecionar o tráfego para o LB1.
Este exemplo usa o código de resposta 301. Em alternativa, pode usar um código de resposta diferente.
Para configurar o redirecionamento com gcloud
, tem de importar um ficheiro YAML e certificar-se de que o proxy HTTP de destino aponta para o mapa de URLs que redireciona o tráfego. Se estiver a usar a Trusted Cloud consola, esta ação é processada automaticamente.
Os balanceadores de carga de aplicações externos regionais não são suportados na Trusted Cloud consola.
gcloud
- Crie um ficheiro YAML
/tmp/web-map-http.yaml
. Este exemplo usa MOVED_PERMANENTLY_DEFAULT como código de resposta. - Crie o mapa de URLs do balanceador de carga de HTTP importando o ficheiro YAML. O nome deste mapa de URLs é
web-map-http
. - Verifique se o mapa de URLs está atualizado. O mapa de URLs do balanceador de carga HTTP deve ter um aspeto semelhante a este:
- Crie um novo proxy HTTP de destino ou atualize um proxy HTTP de destino existente,
usando
web-map-http
como o mapa de URLs. - Crie uma regra de encaminhamento para encaminhar pedidos recebidos para o proxy. A flag
--address
especifica o endereço IPlb-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 estiver a atualizar um mapa de URLs existente, é apresentado o seguinte comando:
Url Map [web-map-http] will be overwritten. Do you want to continue (Y/n)?
Para continuar, prima 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
Testar o redirecionamento de HTTP para HTTPS
Tenha em atenção o endereço IP reservado que está a usar para ambos os balanceadores de carga.
gcloud compute addresses describe lb-ipv4-1
--format="get(address)"
--region=REGION
Neste exemplo, vamos supor que o endereço IP reservado é 34.98.77.106
. O URL http://34.98.77.106/
redireciona para https://34.98.77.106/
.
Após alguns minutos, pode testar esta situação executando o seguinte comando
curl
.
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 o separador de redirecionamento de HTTP para HTTPS.
Para o GKE, consulte os redirecionamentos de HTTP para HTTPS na documentação do GKE.
Para balanceadores de carga de aplicações internos, consulte o artigo Configurar o redirecionamento de HTTP para HTTPS para balanceadores de carga de aplicações internos.
Para outros tipos de redirecionamentos, consulte o artigo Redirecionamentos de URL.