Todos os produtos
Search
Central de documentação

Server Load Balancer:Autenticação Mútua HTTPS

Última atualização: Jul 10, 2026

Ative a autenticação mútua no ALB para exigir que cliente e servidor verifiquem mutuamente suas identidades antes de estabelecer uma conexão. Isso impede ataques man-in-the-middle e acessos não autorizados em cenários de alta segurança, como transações financeiras e saúde.

Visão geral do recurso

Por que usar autenticação mútua

A maioria das aplicações web utiliza autenticação unidirecional para estabelecer conexões HTTPS. O cliente verifica a identidade do servidor para garantir a conexão com o destino correto.

Em aplicações que exigem maior segurança, o servidor também deve verificar a identidade do cliente. A autenticação mútua garante que apenas clientes autorizados acessem o service, reduzindo riscos como ataques man-in-the-middle e acessos não autorizados.

Comparação entre autenticação unidirecional e mútua

Item

Autenticação unidirecional

Autenticação mútua

Arquivos de certificado

Certificado do servidor:

  • Certificado de chave pública do servidor

  • Arquivo de chave privada do servidor

  • Certificado do servidor:

    • Certificado de chave pública do servidor

    • Arquivo de chave privada do servidor

  • Certificado do cliente:

    • Certificado de chave pública do cliente

    • Arquivo de chave privada do cliente

  • Certificado da CA raiz

Processo de handshake

image

image

Casos de uso

Transações financeiras, saúde, setor bancário e pagamentos online: qualquer cenário em que o sistema precise verificar a identidade do cliente além da do servidor.

Se não for necessário autenticar clientes, dispensa-se o uso de autenticação mútua.

Limitações

  • Apenas instâncias ALB das edições Standard e WAF-Enhanced suportam autenticação mútua. Instâncias ALB da edição Basic não oferecem suporte a esse recurso.

  • Somente listeners HTTPS aceitam autenticação mútua. Listeners QUIC e HTTP não possuem esse suporte.

Cenário de exemplo

Uma empresa implantou uma plataforma de transações online que inicialmente utilizava apenas autenticação HTTPS unidirecional. Dispositivos não autorizados tentavam acessar o sistema, gerando riscos de vazamento de dados e adulteração de transações. Com o crescimento do tráfego, a plataforma também enfrentou pressão crescente de desempenho durante os picos.

Para resolver esses problemas, a empresa implantou uma instância ALB e ativou a autenticação mútua.

  • O ALB distribui as solicitações dos clientes entre os servidores de backend, garantindo desempenho estável e tempos de resposta rápidos mesmo durante picos de alta concorrência.

  • Com a autenticação mútua ativada, todos os clientes devem fornecer um certificado válido para estabelecer uma conexão. Isso previne acessos não autorizados e reduz o risco de vazamento de dados e adulteração de transações.

image

Pré-requisitos

  • Você já comprou ou carregou um certificado de servidor no Certificate Management Service.

    Este tópico utiliza como exemplo um certificado de servidor adquirido no Alibaba Cloud console do Certificate Management Service.

    Nota

    Ao comprar um certificado SSL, vincule-o a um nome de domínio. Certifique-se de ter um nome de domínio válido e acessível.

  • A autenticação mútua também exige um certificado de CA. Você pode comprar e ativar um certificado de CA subordinada (requer cota de certificados disponível) ou carregar um certificado de CA raiz autoassinado ou de CA subordinada.

  • Você já criou uma VPC (VPC1) e criou duas instâncias ECS (ECS01 e ECS02) na VPC1. Os serviços de aplicação estão implantados em ambas as instâncias.

    Este exemplo usa Alibaba Cloud Linux 3 como sistema operacional e Nginx para configure o service HTTPS.

    Comandos de exemplo para implantar um service de teste no ECS01

    1. Execute os comandos a seguir para instale o Nginx e implantar uma aplicação de teste de exemplo.

      yum install -y nginx
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS01." > index.html
    2. Para permitir que a instância ALB se comunique com os servidores de backend via HTTPS, carregue o arquivo de certificado do servidor no servidor de backend. Em seguida, no arquivo de configuração do Nginx nginx.conf, configure o módulo de service HTTPS, especifique o caminho do arquivo de certificado e salve o arquivo.

      vim /etc/nginx/nginx.conf

      Exemplo de código:

      http {
          ...
          # Existing configuration
          
          # HTTPS service module
          server {
            listen       443 ssl;
            server_name  _;
            root         /usr/share/nginx/html;
      
              # Replace with the path to your server certificate file.
              ssl_certificate "/etc/pki/nginx/server.crt";
              # Replace with the path to your server certificate private key file.
              ssl_certificate_key "/etc/pki/nginx/private/server.key";
              
              ...
          }
      }
    3. Execute o comando a seguir para reiniciar o service Nginx.

      systemctl restart nginx.service
  • Você já criou uma instância ALB da edição Standard ou WAF-enabled.

  • Você já criou um grupo de servidores e adicionou ECS01 e ECS02 como servidores de backend.

    Se desejar que a instância ALB se comunique com os servidores de backend via HTTPS, selecione HTTPS como protocolo de backend ao criar o grupo de servidores e certifique-se de que o service HTTPS esteja implantado nos servidores de backend.

Procedimento

Etapa 1: Configure o certificado do cliente

Prepare e exporte um certificado de cliente.

Este tópico descreve dois métodos para obter um certificado de CA. Você pode comprar um certificado de CA e solicitar um certificado de cliente no Certificate Management Service, ou carregar um certificado de CA autoassinado no Certificate Management Service.

1. Preparar um certificado de cliente

Pelo console

Para mais informações, consulte Solicitar um certificado privado.

  1. Faça login no console do Certificate Management Service.

  2. No painel de navegação à esquerda, escolha Certificate Management > Private Certificate Management. Na página Private Certificate Management, selecione a região onde o service PCA está localizado.

  3. Na aba Private CAs, localize a CA subordinada desejada e clique em Apply for Certificate na coluna Actions.

  4. No painel Apply for Certificate, configure as definições do certificado conforme descrito na tabela a seguir e clique em Confirm.

    Neste exemplo, ao solicitar um certificado de cliente, defina Certificate Type como Client Certificate e insira um Personal Name para identificar exclusivamente o usuário cliente. Mantenha os valores padrão para outros parâmetros ou modifique-os conforme necessário.

    Após enviar a solicitação, a CA privada emite o certificado imediatamente. Em seguida, clique em Certificates na coluna Actions da CA subordinada para visualize o certificado emitido.

Autoassinado

  1. Faça login no ECS01 e execute os comandos a seguir para gerar um certificado de CA raiz autoassinado.

    Uma instância ALB suporta autenticação mútua usando um certificado de CA raiz autoassinado ou um certificado de CA intermediária autoassinado. Este exemplo utiliza um certificado de CA raiz autoassinado.

    1. Execute o comando a seguir para crie uma chave privada para o certificado da CA raiz:

      openssl genrsa -out root.key 4096
    2. Execute o comando a seguir para crie uma solicitação de assinatura de certificado (CSR) para o certificado da CA raiz:

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

      Insira as informações solicitadas quando prompted. Exemplo de código:

      Nota

      Certifique-se de que o Common Name do certificado da CA seja exclusivo e diferente do Common Name do certificado do servidor ou do certificado do cliente.

      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****@example.com
      A challenge password []:
      An optional company name []:
    3. Execute o comando a seguir para crie o certificado da CA raiz:

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

      Saída retornada:

      Signature ok
      subject=C = cn, ST = bj, L = bj, O = alibaba, OU = test, CN = root, emailAddress = a****@example.com
      Getting Private Key
    4. Execute o comando ls para visualize o certificado da CA raiz gerado root.crt e sua chave privada root.key.

      Você pode baixe esses arquivos de certificado da CA raiz para o seu computador para uso posterior.

  2. Carregue o certificado de CA raiz autoassinado no Certificate Management Service.

    1. Faça login no console do Certificate Management Service.

    2. No painel de navegação à esquerda, escolha Certificate Service > Certificate Application Repository.

    3. Na página Certificate Application Repository, clique em Create Repository. No painel Create repository, defina Data source como Uploaded CA certificates e clique em OK.

    4. Na página Certificate Application Repository, clique no repositório criado.

    5. Na página Certificates, clique em Uploaded Certificate. No painel CA information, carregue o arquivo de certificado da CA raiz root.crt e clique em Confirm and Enable.

2. Exportar o certificado do cliente

Exportar pelo console

Para usar um certificado de cliente comprado no console para autenticação mútua, exporte-o seguindo estas etapas:

  1. Na aba Private CAs, localize a CA subordinada desejada e clique em Certificates na coluna Actions.

  2. Na página Certificates, localize o certificado privado desejado e clique em Download na coluna Actions.

  3. Na caixa de diálogo Download Certificate, selecione o formato de certificado desejado e clique em Confirm and Download. Se selecionar Include Trust Chain, o certificado baixado incluirá a cadeia de certificados completa.

    Neste exemplo, selecione PFX para Formato do certificado. Esse formato é reconhecido pelos navegadores.

    Os arquivos baixados incluem um arquivo de certificado de cliente com a extensão .pfx e um arquivo de texto com a extensão .txt que contém a senha de criptografia da chave privada do cliente.

Exportar autoassinado

Para usar um certificado de cliente gerado a partir de um certificado de CA autoassinado para autenticação mútua, siga estas etapas para gerá-lo:

Faça login no ECS01 e execute as etapas a seguir para gerar um certificado de cliente:

  1. Execute o comando a seguir para gerar uma chave privada para o certificado do cliente:

    openssl genrsa -out client.key 4096
  2. Execute o comando a seguir para gerar uma CSR para o certificado do cliente:

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

    Insira as informações solicitadas quando solicitado. Exemplo de código:

    Nota

    Certifique-se de que o Common Name do certificado do cliente seja exclusivo e diferente do Common Name do certificado do servidor, do certificado raiz ou de qualquer outro certificado de cliente.

    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) []:client-alb-user
    Email Address []:username@example.com
    A challenge password []:
    An optional company name []:
  3. Execute o comando a seguir para gerar o certificado do cliente.

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

    Saída retornada:

    Signature ok
    subject=C = cn, ST = bj, L = bj, O = alibaba, OU = test, CN = client-alb-user, emailAddress = username@example.com
    Getting CA Private Key
  4. Execute o comando a seguir para converter o certificado de cliente gerado client.crt em um arquivo PKCS12, reconhecido pelos navegadores. Insira a senha de criptografia da chave privada do cliente quando solicitado.

    openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
  5. Execute o comando ls para visualize o arquivo de certificado de cliente client.p12 gerado.

    Você pode baixe o arquivo de certificado do cliente para o seu computador para uso posterior no cliente.

Etapa 2: Configure um listener de autenticação mútua

  1. Na barra de navegação superior do console do ALB, selecione a região onde a instância ALB está implantada. Na página Instances, localize a instância ALB que deseja gerencie e clique em seu ID.

  2. Na página de detalhes da instância, clique na aba Listener e clique em Create Listener. Configure os parâmetros e clique em Next.

    Neste exemplo, defina Select Listener Protocol como HTTPS e Listener Port como 443. Mantenha os valores padrão para outros parâmetros do listener HTTPS ou modifique-os conforme necessário.

  3. Na etapa SSL Certificate, selecione o certificado de servidor comprado. Em seguida, ative Enable Mutual Authentication, selecione uma origem de certificado de CA e seu certificado correspondente. Por fim, selecione uma política de segurança TLS e clique em Next.

  4. Na etapa Server Group, selecione um Server Type e o Server Type de backend. Revise as informações sobre os servidores de backend ECS01 e ECS02 e clique em Next.

  5. Na etapa Confirm, revise as configurações e clique em Submit.

Etapa 3: Configure a resolução de DNS

Para ambientes de produção, recomendamos crie um registro CNAME para mapear seu nome de domínio personalizado para o nome DNS da instância ALB.

  1. No painel de navegação à esquerda do console do ALB, escolha ALB > Instances. Na página Instances, copie o nome DNS da instância ALB criada.

  2. Execute as etapas a seguir para adicionar um registro CNAME.

    1. Na página DNS Resolution, localize o nome de domínio personalizado desejado e clique em DNS Settings na coluna Operations.

      Nota

      Se o seu nome de domínio não estiver registrado no Alibaba Cloud, primeiro adicione seu nome de domínio ao console de DNS do Alibaba Cloud antes de defina as configurações de DNS.

    2. Na página de configurações de DNS, clique em Add DNS record, configure o registro CNAME e clique em OK.

      Neste exemplo, defina Record type como CNAME e Record value como o nome DNS da instância ALB. Mantenha os valores padrão para outros parâmetros de registro DNS ou modifique-os conforme necessário.

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

Este exemplo utiliza um cliente Windows e o navegador Chrome.

  1. Instale o certificado de cliente exportado no cliente.

    Clique duas vezes no arquivo de certificado do cliente baixado e siga as instruções do assistente de importação de certificados para instale o certificado do cliente.

  2. No navegador, insira https://<your custom domain name>. Na caixa de diálogo exibida, selecione o certificado a ser usado para autenticação do cliente.

  3. Atualize o navegador. Observe que as solicitações do cliente são distribuídas entre os servidores ECS01 e ECS02.

    Se a página retornar Hello World ! This is ECS01., a solicitação foi encaminhada para o ECS01.

    Se você atualizar a página e ela retornar Hello World ! This is ECS02., a solicitação foi encaminhada para o ECS02.

Referências

Operações no console

Referência de API

Chame as operações de API a seguir e defina o parâmetro CaEnabled como true para ative a autenticação mútua.