Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Gerenciar certificados de gateway com cert-manager

Última atualização: Aug 25, 2026

O cert-manager é um sistema de gerenciamento do ciclo de vida de certificados que automatiza solicitações e implantações. Utilize o cert-manager para emitir certificados destinados a um gateway do ASM. Essa abordagem permite proteger com HTTPS os services acessados pelo gateway, garantindo a criptografia dos dados em trânsito. Este tópico descreve como usar o cert-manager para gerenciar certificados de gateways.

Informações básicas

O cert-manager emite certificados autoassinados e certificados validados por DNS, possibilitando o acesso a services via HTTPS através de um gateway do ASM. As diferenças entre esses dois tipos de certificado são:

  • Certificados autoassinados oferecem criptografia, mas não verificam identidade. Embora permitam acessar o gateway do ASM via HTTPS usando ferramentas de linha de comando, navegadores web não confiam neles e exibem avisos de segurança que impedem o acesso direto.

  • Certificados validados por DNS são emitidos por uma autoridade certificadora (CA) confiável, fornecendo tanto criptografia quanto verificação de identidade. Por oferecerem maior segurança e serem reconhecidos pelos navegadores, permitem acessar o gateway do ASM via HTTPS tanto por ferramentas de linha de comando quanto por navegadores web.

Nota

Caso encontre erros ao utilizar o cert-manager em um cluster de plano de dados do ASM, participe do grupo do DingTalk (ID: 30421250) para obter suporte.

Pré-requisitos

Instale o cert-manager

  1. Instale o Helm na sua máquina local. Para mais informações, consulte Helm.

  2. Conecte-se ao seu cluster usando kubectl. Para mais informações, consulte Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.

  3. Execute o comando abaixo para criar o namespace do cert-manager:

    kubectl create namespace cert-manager
  4. Execute o comando a seguir para adicionar o repositório de charts do cert-manager:

    helm repo add jetstack https://charts.jetstack.io
  5. Atualize o repositório de charts do cert-manager executando este comando:

    helm repo update
  6. Instale o cert-manager com o seguinte comando:

    Nota

    A versão do cert-manager deve ser compatível com a sua versão do Kubernetes. Consulte Supported Releases para verificar a compatibilidade entre versões.

    helm install \
      cert-manager jetstack/cert-manager \
      --namespace cert-manager \
      --version v1.14  \
      --set installCRDs=true

Emitir um certificado autoassinado

Etapa 1: Gerar um certificado autoassinado

  1. Crie um arquivo chamado issuer.yaml com o conteúdo a seguir.

    Show issuer.yaml

    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: selfsigned
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: istio-ingressgateway-certs
    spec:
      isCA: true
      duration: 2160h # 90d
      secretName: istio-ingressgateway-certs
      commonName: istio-ingressgateway-certs
      subject:
        organizations:
        - cluster.local
        - cert-manager
      issuerRef:
        name: selfsigned
        kind: Issuer
        group: cert-manager.io
  2. Para criar uma CA autoassinada capaz de emitir certificados de carga de trabalho, execute:

    kubectl apply -f issuer.yaml -n istio-system
  3. Verifique se o Secret do certificado foi criado executando o comando abaixo:

    kubectl get secret -n istio-system 

    Saída esperada:

    NAME                                        TYPE                             DATA         AGE
    istio-ingressgateway-certs                  kubernetes.io/tls                3            68m

Etapa 2: Verifique o acesso via HTTPS

  1. Implante a aplicação httpbin. Para mais detalhes, consulte Deploy the httpbin application.

  2. Modifique o Gateway da aplicação httpbin.

    Essa modificação pode ser feita via linha de comando utilizando o arquivo kubeconfig da sua instância do ASM, ou diretamente no console do ASM alterando o YAML na página Gateway. Consulte Manage Gateway rules para mais informações.

    O exemplo de YAML a seguir adiciona um listener HTTPS na porta 443, utilizando o certificado gerado pelo cert-manager.

    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:
            - '*'
          port:
            name: https
            number: 443
            protocol: HTTPS
          tls:
            credentialName: istio-ingressgateway-certs
            mode: SIMPLE
  3. Obtenha o endereço IP do gateway de entrada com este comando:

    kubectl get svc -n istio-system -l istio=ingressgateway
  4. Acesse a aplicação httpbin via HTTPS executando:

    curl -k --resolve istio-ingressgateway-certs:443:${ASM_GATEWAY_IP} https://istio-ingressgateway-certs/status/418 -I

    Uma solicitação bem-sucedida retorna o código de status 418. O domínio usado para acessar o gateway é istio-ingressgateway-certs, correspondente ao commonName definido no recurso Certificate.