Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Use SSL certificates provided by Certificate Management Service in an ASM gateway

Última atualização: Jun 28, 2026

Quando seu gateway de entrada ASM precisa encerrar tráfego HTTPS, utilize certificados SSL gerenciados pelo Certificate Management Service (antigo SSL Certificate). Em vez de criar Secrets do Kubernetes manualmente, implante certificados diretamente do console do Certificate Management Service no cluster do plano de dados do Container Service for Kubernetes (ACK). O gateway referencia o certificado implantado para realizar a terminação TLS.

Este tópico aborda quatro etapas: concessão de permissões, implantação do certificado como um Secret do Kubernetes, configuração do recurso Istio Gateway para TLS e verificação do acesso HTTPS.

Pré-requisitos

Etapa 1: Conceder acesso do Certificate Management Service ao cluster ACK

O Certificate Management Service utiliza a função do Resource Access Management (RAM) AliyunCASDefaultRole para acessar e gerenciar clusters ACK. Conceda as permissões necessárias a essa função antes de implantar certificados.

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Authorizations.

  2. Clique na aba RAM Roles, insira AliyunCASDefaultRole na caixa de pesquisa e clique em Manage Permissions.

    Nota: Se a mensagem AliyunCASDefaultRole Does Not Exist aparecer, crie a função RAM para o Certificate Management Service e conceda permissões primeiro.
  3. Na caixa de diálogo Permission Management, clique em + Add Permissions e configure os seguintes campos:

    Campo

    Valor

    Cluster

    Selecione o cluster de destino na lista suspensa.

    Namespace

    Selecione istio-system.

    Permission Management

    Escolha Restricted User.

  4. Clique em Submit Authorization.

Etapa 2: Implantar o certificado no cluster ACK

Após a implantação, o Certificate Management Service cria um Secret do Kubernetes do tipo kubernetes.io/tls no namespace istio-system. O gateway de entrada lê esse Secret para realizar a terminação TLS.

Nota: Este tópico usa o nome de domínio test.com como exemplo. Substitua-o pelo seu domínio real.

Implantar o certificado

  1. Acesse o console do Certificate Management Service.

    Se esta for a primeira vez que você utiliza o recurso de implantação, siga as instruções na tela para conceder as permissões necessárias. Para mais detalhes, consulte Conceder permissões para acessar recursos de nuvem.

  2. No painel de navegação à esquerda, escolha Certificate Management > SSL Certificate Management.

  3. Na página SSL Certificate Management, clique na aba correspondente ao tipo do seu certificado, localize-o e clique em Deploy na coluna Actions.

    Nota: Certificados emitidos por uma autoridade certificadora privada (CA) aparecem na aba Manage Uploaded Certificates.
  4. Na etapa Select Resource da página Create Task, selecione os serviços de nuvem e recursos de destino e clique em Preview and Submit.

    O sistema associa automaticamente seu certificado SSL aos recursos de serviço de nuvem que já possuem um certificado SSL configurado. Os recursos correspondentes aparecem na seção Selected Resources. Ajuste a seleção conforme necessário.

    SSL certificate matched resources

    Caso o recurso de destino não apareça:

    • Verifique a seção Total Resources. Se os recursos ainda estiverem sendo sincronizados (acinzentados), aguarde a conclusão da sincronização.

      Resources synchronization status

    • Se a sincronização estiver concluída, mas o recurso ainda não aparecer, confirme se os pré-requisitos de implantação foram atendidos.

  5. No painel Task Preview, confirme as informações da instância do certificado e do recurso de serviço de nuvem e clique em Submit.

    Nota: A pré-visualização exibe o número de certificados correspondentes e as cotas de implantação consumidas. Uma contagem de certificados correspondentes igual a 0 indica que o certificado não corresponde ao recurso selecionado. Revise sua seleção de certificados antes de prosseguir.

Obter o nome do Secret

Após a implantação, obtenha o nome do Secret para referenciá-lo na configuração do Gateway:

kubectl -n istio-system get secret -l alibabacloud.com/ssl-certificate-identifier=${CertIdentifier of the SSL certificate}

Saída esperada:

NAME                TYPE                DATA   AGE
cas-cert-305xxx76   kubernetes.io/tls   2      10m

Anote o nome do Secret (por exemplo, cas-cert-305xxx76) para usar na próxima etapa.

Etapa 3: Configurar o recurso Gateway para HTTPS

Atualize o recurso Istio Gateway criado quando você implantou a aplicação httpbin. Adicione um bloco de servidor HTTPS que referencie o Secret obtido na etapa anterior.

kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: httpbin
  namespace: default
spec:
  selector:
    istio: ingressgateway
  servers:
    - hosts:
        - '*'
      port:
        name: test
        number: 80
        protocol: HTTP
    - hosts:
        - 'test.com'
      port:
        name: https
        number: 443
        protocol: HTTPS
      tls:
        mode: SIMPLE
        credentialName: cas-cert-305xxx76  # Replace with your Secret name from Step 2
EOF

Campos principais no bloco de servidor HTTPS:

Campo

Descrição

hosts

Nome de domínio correspondente ao certificado SSL (por exemplo, test.com).

port.number

O HTTPS escuta na porta 443.

tls.mode

SIMPLE ativa TLS unidirecional (apenas autenticação do servidor).

tls.credentialName

Nome do Secret do Kubernetes que contém o certificado. Deve corresponder ao nome do Secret obtido na Etapa 2.

Etapa 4: Verificar o acesso HTTPS

  1. Obtenha o endereço IP do gateway de entrada:

    export GATEWAY_IP=$(kubectl get service istio-ingressgateway -n istio-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. Envie uma solicitação de teste via HTTPS:

    curl -vk --resolve test.com:443:${GATEWAY_IP} https://test.com/status/418

    Saída esperada (abreviada):

    * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
    * ALPN, server accepted to use h2
    * Server certificate:
    *  subject: CN=test.com; O=myexample organization
    ...
    > GET /status/418 HTTP/2
    > Host: test.com
    ...
    < HTTP/2 418
    < server: istio-envoy
    ...
    
        -=[ teapot ]=-
    
           _...._
         .'  _ _ `.
        | ."` ^ `". _,
        \_;`"---"`|//
          |       ;/
          \_     _/
            `"""`

    Uma resposta bem-sucedida inclui tanto os detalhes do handshake TLS (TLSv1.3, certificado do servidor para test.com) quanto um código de status HTTP/2 418 da aplicação httpbin.