Todos os produtos
Search
Central de documentação

Container Compute Service:Improve service security with HTTPS mutual authentication

Última atualização: Jun 29, 2026

O HTTPS padrão verifica apenas o servidor e permite que qualquer cliente se conecte. O TLS mútuo (mTLS) exige que tanto o servidor quanto o cliente apresentem certificados válidos. Assim, somente clientes com certificado assinado por uma CA confiável estabelecem conexão. Ao impor o mTLS no listener do Application Load Balancer (ALB), você rejeita conexões não autorizadas antes que elas alcancem o backend.

Essa configuração é ideal para serviços financeiros, IoT, serviços internos corporativos e aplicações do setor público que lidam com dados privados.

Como funciona

Tipo de autenticação

Servidor verificado pelo cliente

Cliente verificado pelo servidor

Unidirecional (HTTPS padrão)

Sim

Não

Mútua (mTLS)

Sim

Sim

Na autenticação mútua, o servidor possui um certificado de CA e o cliente possui um certificado SSL ou TLS assinado por essa CA. O ALB valida o certificado do cliente em relação ao certificado da CA em cada conexão. Um canal seguro é estabelecido somente após ambas as partes verificarem a identidade uma da outra.

Pré-requisitos

Antes de começar, certifique-se de ter:

(Opcional) Etapa 1: Gerar um certificado de CA raiz autoassinado

Gere um certificado de CA raiz localmente e envie-o para o console do Certificate Management Service.

Gerar o certificado

  1. Crie uma chave privada:

    openssl genrsa -out ca.key 4096
  2. Crie uma solicitação de assinatura de certificado (CSR):

    Campo

    Descrição

    Obrigatório

    Country Name

    Código de país de duas letras, por exemplo, cn para China

    Sim

    State or Province Name

    Nome completo do estado ou província

    Sim

    Locality Name

    Nome da cidade

    Sim

    Organization Name

    Nome da empresa ou organização

    Sim

    Organizational Unit Name

    Nome do departamento ou unidade

    Sim

    Common Name

    Nome de domínio para o certificado

    Não

    Email Address

    E-mail de contato do administrador do certificado

    Não

    A challenge password

    Senha para autenticar o acesso à CSR. Deixe em branco se não for necessário

    Não

    An optional company name

    Deixe em branco se não for necessário

    Não

    openssl req -new -out ca.csr -key ca.key

    Quando solicitado, insira os valores para os seguintes campos:

    Country Name (2 letter code) [XX]:cn
    State or Province Name (full name) []:bj
    Locality Name (eg, city) [Default City]:bj
    Organization Name (eg, company) [Default Company Ltd]:alibaba
    Organizational Unit Name (eg, section) []:test
    Common Name (eg, your name or your servers hostname) []:root
    Email Address []:a.alibaba.com
    A challenge password []:
    An optional company name []:
  3. Crie o certificado de CA raiz:

    • ca.crt — certificado de CA raiz (usado na Etapa 3 para configurar o AlbConfig)

    • ca.csr — CSR enviada à CA

    • ca.key — chave privada (usada na Etapa 2 para assinar o certificado do cliente)

    Importante

    Mantenha o arquivo ca.key confidencial. Qualquer pessoa com acesso à chave privada pode emitir certificados de cliente confiáveis.

    openssl x509 -req -in ca.csr -out ca.crt -signkey ca.key -CAcreateserial -days 3650

    Execute ls para confirmar a presença dos seguintes arquivos:

    ca.crt  ca.csr  ca.key

Upload the CA certificate

  1. Faça login no console do Certificate Management Service. No painel de navegação à esquerda, clique em Certificate Application Repository.

  2. Clique em Create Repository. No painel exibido, defina os parâmetros a seguir e clique em OK:

    Parâmetro

    Descrição

    Repository Name

    Insira um nome personalizado

    Data Source

    Clique em Uploaded Certificates e selecione um certificado privado adquirido e emitido por um provedor de serviços de certificados terceirizado

  3. Clique no repositório criado. Na página Manage Certificates, clique em Uploaded Certificates.

  4. No painel CA Information, defina os parâmetros abaixo e clique em Confirm and Enable:

    Parâmetro

    Descrição

    Package Name

    Insira um nome personalizado para o certificado

    CA Certificates

    Cole o conteúdo codificado em PEM do arquivo ca.crt ou clique em Upload para selecionar o arquivo

    Certificate Key

    Cole o conteúdo codificado em PEM do arquivo ca.key

Etapa 2: Gerar um certificado de cliente

Use o certificado de CA autoassinado da Etapa 1 para emitir um certificado de cliente. Os clientes apresentam esse certificado para autenticação no listener do ALB.

  1. Gere uma chave privada para o certificado do cliente:

    openssl genrsa -out client.key 4096
  2. Gere uma CSR para o certificado do cliente:

    openssl req -new -out client.csr -key client.key
  3. Assine o certificado do cliente com a CA raiz da Etapa 1:

    openssl x509 -req -in client.csr -out client.crt -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650

    Execute ls para confirmar a presença dos seguintes arquivos:

    client.crt  client.csr  client.key

Etapa 3: Configurar um AlbConfig para ativar a autenticação mútua

O recurso AlbConfig define a instância do ALB e seus listeners. Definir caEnabled: true em um listener ativa o mTLS. Com isso, o ALB exige e verifica um certificado de cliente em cada conexão HTTPS para esse listener.

Você precisa de dois IDs de certificado do console do Certificate Management Service:

  • ID do certificado do servidor: acesse SSL Certificates > ícone de Ações > Details > painel Certificate Details.

  • ID do certificado da CA raiz: acesse Certificate Application Repository > seu repositório > Manage Certificates > Details > painel Certificate Details.

Aplique um AlbConfig com a seguinte estrutura:

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb-demo
spec:
  config:
    name: alb-test
    addressType: Intranet
    # Specify at least two vSwitches in different zones.
    # The zones must be supported by ALB and belong to the same virtual private cloud (VPC) as the cluster.
    zoneMappings:
    - vSwitchId: vsw-2zednnurkug2xl4******
    - vSwitchId: vsw-2zeusdspvojoumx******
  listeners:
  - port: 443
    protocol: HTTPS
    caEnabled: true                                      # Enables mutual authentication
    caCertificates:
    - CertificateId: 0e40dda998174723af39d37fcaf*****   # Root CA certificate ID
    certificates:
    - CertificateId: 108*****-cn-hangzhou                # Server certificate ID
      IsDefault: true

Etapa 4: Testar a autenticação mútua

Implante um serviço de teste e verifique se o ALB impõe a validação do certificado do cliente.

  1. Crie um arquivo chamado coffee.yaml com o seguinte conteúdo:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: coffee
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: coffee
      template:
        metadata:
          labels:
            app: coffee
        spec:
          containers:
          - name: coffee
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: coffee-svc
    spec:
      ports:
      - port: 80
        targetPort: 80
        protocol: TCP
      selector:
        app: coffee
      type: NodePort
    ---
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      annotations:
        alb.ingress.kubernetes.io/listen-ports: |
         [{"HTTPS": 443}]
      name: alb-ingress
    spec:
      ingressClassName: alb
      rules:
      - host: alb.ingress.alibaba.com  # Replace with your actual domain name.
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: coffee-svc
                port:
                  number: 80
  2. Implante o serviço de teste:

    kubectl apply -f coffee.yaml

    Saída esperada:

    deployment.apps/coffee created
    service/coffee-svc created
    ingress.networking.k8s.io/alb-ingress created
  3. Obtenha o endereço IP elástico (EIP) da instância do ALB:

    1. Faça login no console do ALB e selecione a região onde a instância do ALB está implantada.

    2. Na página Instances, clique na instância do ALB.

    3. Na seção Zone da página de detalhes da instância, localize o EIP associado ao vSwitch.

  4. Adicione um registro DNS ao arquivo hosts local para mapear o nome de domínio ao EIP:

    123.XX.XX.XX  alb.ingress.alibaba.com
  5. Teste o acesso com o certificado do cliente:

    curl https://alb.ingress.alibaba.com/ --cert client.crt --key client.key

    O servidor retorna uma resposta e redireciona para uma página HTML. Isso confirma que o ALB aceitou o certificado do cliente.

Próximos passos

Referências