Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Criar um listener HTTPS para a instância CLB de um gateway de entrada

Última atualização: Jun 28, 2026

Quando o gateway de entrada do Service Mesh (ASM) recebe tráfego externo via HTTPS, o handshake TLS adiciona sobrecarga de processamento ao pod do gateway. Para ativar o HTTPS e o carregamento dinâmico de certificados, vincule um certificado TLS à instância do Classic Load Balancer (CLB) do gateway de entrada. Essa configuração encerra o TLS no nível do balanceador de carga. A instância CLB descriptografa as requisições HTTPS recebidas e encaminha HTTP em texto simples para o pod do gateway, transferindo o processamento TLS e centralizando o gerenciamento de certificados.

Como funciona

A terminação TLS no nível da CLB separa a criptografia do roteamento da aplicação:

Client ──HTTPS (port 443)──> CLB instance ──HTTP (port 80)──> Ingress gateway pod
                              (TLS termination)

A instância CLB gerencia toda a descriptografia TLS. O pod do gateway de entrada recebe apenas tráfego HTTP em texto simples na porta 80. Essa arquitetura oferece dois benefícios:

  • Redução da carga do gateway: Os handshakes TLS e a descriptografia ocorrem na instância CLB, e não no pod do gateway.

  • Gerenciamento centralizado de certificados: Gerencie os certificados por meio do Certificate Management Service em vez de configurá-los individualmente em cada gateway.

Pré-requisitos

Etapa 1: Preparar um certificado TLS

Para vincular um certificado à instância CLB, você precisa de um arquivo de certificado e de uma chave privada. Escolha uma das opções abaixo conforme a disponibilidade de um certificado existente.

Opção A: Usar um certificado existente

Caso já possua um certificado e uma chave privada para seu domínio (por exemplo, aliyun.com), nomeie os arquivos da seguinte forma:

  • Chave privada: aliyun.com.key

  • Certificado: aliyun.com.crt

Pule para Carregar o certificado no Certificate Management Service.

Opção B: Gerar um certificado autoassinado

Se você não tiver um certificado, utilize o OpenSSL para gerar um certificado raiz autoassinado e uma chave privada:

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \
  -subj '/O=myexample Inc./CN=aliyun.com' \
  -keyout aliyun.root.key \
  -out aliyun.root.crt

Esse comando gera dois arquivos:

Arquivo

Descrição

aliyun.root.key

Chave privada RSA de 2048 bits

aliyun.root.crt

Certificado X.509 autoassinado válido por 365 dias

Carregar o certificado no Certificate Management Service

  1. Faça login no console do Server Load Balancer CLB.

  2. No painel de navegação à esquerda, escolha Server Load Balancer CLB > Certificate Management.

  3. Na página Certificate Management, clique em Create Certificate.

  4. No painel Create Certificate, selecione Alibaba Cloud Issued Certificate e clique em Create SSL Certificate na parte inferior da lista de certificados.

  5. Você será redirecionado para a página do Digital Certificate Management Service. No painel de navegação à esquerda, escolha Certificate Management > SSL Certificate Management.

  6. Na aba Upload Certificate, clique em Upload Certificate.

  7. Defina o Certificate Name como aliyun.com e carregue o certificado raiz e a chave privada nos campos Certificate File e Certificate Private Key. Clique em OK.

    Ignore o aviso sobre a cadeia de certificados para certificados autoassinados.

  8. Após concluir o upload, anote o ID do certificado. Esse ID será necessário na Etapa 2.

Para mais informações sobre o upload de certificados, consulte Selecionar Alibaba Cloud Issued Certificate.

Etapa 2: Criar um listener HTTPS

Configure o YAML do gateway de entrada para criar um listener HTTPS na porta 443. A instância CLB descriptografa o tráfego HTTPS e o encaminha como HTTP para a porta 80 do pod do gateway de entrada.

Para obter mais detalhes, consulte Usar KubeAPI para gerenciar gateways de entrada.

  1. Adicione a seguinte configuração ao arquivo ingressgateway.yaml. Substitua o placeholder pelo valor real. Campos principais de configuração:

    Placeholder

    Descrição

    Exemplo

    <your-cert-id>

    ID do certificado obtido na Etapa 1

    123456789

    Campo

    Valor

    Finalidade

    ports[1].port

    443

    Expõe HTTPS na porta 443

    ports[1].targetPort

    80

    Encaminha o tráfego descriptografado para o pod do gateway na porta 80

    alibaba-cloud-loadbalancer-cert-id

    ID do certificado

    Vincula o certificado TLS à instância CLB

    alibaba-cloud-loadbalancer-protocol-port

    https:443

    Ativa o protocolo HTTPS na porta 443

       spec:
         ...
         ports:
           - name: http-0
             port: 80
             protocol: HTTP
             targetPort: 80
           - name: https-1
             port: 443
             protocol: HTTPS
             targetPort: 80
         ...
         serviceAnnotations:
           service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "<your-cert-id>"
           service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: 'https:443'
         ...
         serviceType: LoadBalancer
  2. Implante o gateway de entrada:

       kubectl apply -f ingressgateway.yaml

Etapa 3: Verificar o acesso HTTPS

Após implantar o gateway de entrada, verifique se o listener HTTPS funciona corretamente.

  1. Faça login no console do ASM.

  2. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  3. Na página Mesh Management, clique no nome da instância ASM desejada.

  4. No painel de navegação à esquerda, escolha ASM Gateways > Ingress Gateway.

  5. Na página Ingress Gateway, localize o Endpoint do gateway alvo.

  6. Defina o endereço IP do gateway como variável de ambiente. Substitua <endpoint-ip-address> pelo valor do Endpoint obtido na etapa anterior.

       export INGRESS_IP=<endpoint-ip-address>
  7. Envie uma requisição HTTPS de teste. Saída esperada: O código de status HTTP/2 200 confirma que o listener HTTPS está operacional. A instância CLB descriptografa o tráfego criptografado e o encaminha como HTTP em texto simples para o cluster.

       curl -k -H "Host:a.aliyun.com" \
         --resolve "a.aliyun.com:443:${INGRESS_IP}" \
         https://a.aliyun.com/productpage -I
       HTTP/2 200
       date: Fri, 13 Jan 2023 07:11:45 GMT
       content-type: text/html; charset=utf-8
       content-length: 5294
       vary: Accept-Encoding
       x-envoy-upstream-service-time: 23