Todos os produtos
Search
Central de documentação

Server Load Balancer:Deploy HTTPS services with CLB (mutual authentication)

Última atualização: Jul 16, 2026

Na autenticação unidirecional, a conexão HTTPS é estabelecida após a autenticação do servidor. Já na autenticação mútua, a conexão HTTPS só ocorre depois que tanto o cliente quanto o servidor são autenticados. Esse método oferece maior segurança e é ideal para proteger service críticos de negócios. Este tópico descreve como configurar a autenticação mútua em um listener HTTPS de uma instância CLB.

Procedimento

Neste exemplo, utiliza-se um certificado de autoridade certificadora (CA) autoassinado para assinar o certificado do cliente. Siga as etapas abaixo para configurar a autenticação mútua no listener HTTPS.

Configure mutual authentication on an HTTPS listener of a CLB instance

Pré-requisitos

  • Você criou uma instância CLB.

  • Você criou dois servidores backend, ECS01 e ECS02, cada um executando uma aplicação diferente.

Etapa 1: Adquirir um certificado de servidor

Adquira um certificado de servidor no Certificate Management Service console da Alibaba Cloud ou em outros provedores de service. Use um navegador para verificar se o certificado enviado pelo servidor foi emitido por uma autoridade confiável.

Este tópico usa como exemplo um certificado de servidor adquirido no Certificate Management Service console da Alibaba Cloud. Para mais informações, consulte Adquirir um certificado SSL.

Importante

Certifique-se de ter um nome de domínio válido para associar ao certificado.

Etapa 2: Gerar um certificado CA com OpenSSL

Na autenticação mútua, o certificado do servidor deve ser emitido por uma CA autorizada para ser considerado confiável pelos navegadores (Etapa 1). No entanto, como você gerencia e distribui os certificados de cliente, eles não exigem uma cadeia de confiança pública. Portanto, é possível usar um certificado CA autoassinado para emiti-los. Siga estas etapas para gerar um certificado CA autoassinado destinado à emissão de certificados de cliente.

Faça login em qualquer máquina Linux com OpenSSL instalado.

  1. Execute o comando abaixo para criar a chave privada do certificado raiz:

    openssl genrsa -out root.key 4096
  2. Execute o comando a seguir para criar um arquivo de solicitação de assinatura de certificado (CSR) para o certificado raiz:

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

    Insira as informações conforme solicitado. Veja um exemplo abaixo:

    Nota

    O Common Name do certificado CA deve ser exclusivo. Não use o mesmo Common Name dos certificados de servidor ou 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) []:root
    Email Address []:a.alibaba.com
    A challenge password []:
    An optional company name []:
  3. Execute o comando seguinte para criar o certificado raiz:

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

    A saída será semelhante a esta:

    [root@i-xxx ~]# openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650
    Signature ok
    subject=C = cn, ST = bj, L = bj, O = alibaba, OU = test, CN = root, emailAddress = xxx@xxx.com
    Getting Private key
  4. Execute ls para visualizar o certificado raiz gerado root.crt e a chave privada root.key.

Etapa 3: Gerar um certificado de cliente

  1. Gere uma chave privada para o certificado de cliente executando o comando abaixo:

  2. openssl genrsa -out client.key 4096
  3. Crie um arquivo CSR para o certificado de cliente com o comando a seguir. Defina o Common Name como seu nome de domínio.

  4. openssl req -new -out client.csr -key client.key
  5. Emita o certificado de cliente utilizando este comando:

  6. openssl x509 -req -in client.csr -out client.crt -CA root.crt -CAkey root.key -CAcreateserial -days 3650
  7. Converta o certificado de cliente gerado client.crt para um arquivo PKCS12 reconhecível pelo navegador através do comando abaixo. Quando solicitado, insira a senha de criptografia definida para a chave privada do cliente.

  8. openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
  9. Verifique os arquivos de certificado de cliente gerados executando ls: client.key, client.crt e client.p12.

Etapa 4: Instalar o certificado de cliente

Instale o certificado de cliente na máquina cliente.

Windows client

Dê um clique duplo no arquivo client.p12 e siga o Assistente de Importação de Certificados para concluir a instalação.

Linux client

Faça upload dos arquivos client.key, client.crt e root.crt para qualquer diretório no seu cliente Linux.

Neste exemplo, o diretório utilizado é /home/ca. Execute sudo chmod 700 /home/ca para ajustar as permissões do diretório.

Etapa 5: Fazer upload do certificado de servidor e do certificado CA

  1. Acesse o CLB console.

  2. No painel de navegação à esquerda, escolha CLB > Certificates e clique em Add Certificate para enviar o certificado de servidor.

  3. No painel Add Certificate, selecione Third-party Certificates, configure os parâmetros listados e clique em Create.

    Parâmetro

    Descrição

    Certificate Name

    Insira um nome para identificar o certificado.

    Certificate Type

    Selecione Server Certificate.

    Public key certificate

    Conteúdo do certificado de servidor. Cole o conteúdo no editor.

    Private Key

    Chave privada do certificado de servidor. Cole a chave privada no editor.

    Region

    Escolha a região onde a instância CLB está localizada.

  4. Na página Certificates, clique em Add Certificate para fazer upload do certificado CA.

  5. No painel Add Certificate, selecione Third-party Certificates, configure os parâmetros necessários e clique em Create.

    Parâmetro

    Descrição

    Certificate Name

    Defina um nome para o certificado.

    Certificate Type

    Selecione CA Certificate.

    Client CA Certificate

    Envie o certificado de chave pública do cliente.

    Region

    Indique a região da instância CLB.

Etapa 6: Configurar a autenticação mútua em um listener HTTPS

Aviso

O CLB rejeita requisições de clientes sem certificado instalado. Caso sua instância CLB esteja em ambiente de produção, teste essa configuração primeiro em um ambiente de homologação. Como alternativa, utilize uma nova porta de escuta para evitar interrupções nos service existentes.

  1. Acesse o Classic Load Balancer console.

  2. Clique no ID da instância CLB criada anteriormente.

  3. Na aba Listeners, clique em Add Listener.

  4. Configure os parâmetros abaixo na aba Protocol & Listener e clique em Next.

    • Select Listener Protocol: HTTPS

    • Listener Port: 443

  5. Selecione o certificado de servidor enviado na aba Certificate Management Service.

  6. Clique em Modify ao lado de Advanced Settings, ative a autenticação mútua, selecione o certificado CA carregado e clique em Next.

  7. Escolha Default Server Group e clique em Add para incluir os servidores backend.

  8. Mantenha os valores padrão para os demais parâmetros, clicando em Next para avançar no assistente. Na última página, clique em Submit para finalizar a criação do listener.

Etapa 7: Testar o recurso de autenticação mútua

Windows client

  1. Abra o navegador e insira https://ip:port, substituindo ip pelo endereço IP público do CLB. Confirme o certificado na caixa de diálogo exibida, seguindo as instruções.

  2. Atualize a página web. Observe que as requisições são distribuídas uniformemente entre os servidores backend.

    A exibição da mensagem Hello World ! This is ECS01. indica que a requisição foi encaminhada ao servidor ECS01.

    Já a mensagem Hello World ! This is ECS02. sinaliza que a requisição foi direcionada ao servidor ECS02.

Linux client

Acesse o cliente Linux onde os certificados foram instalados e execute o comando abaixo para validar a autenticação mútua do CLB:

sudo curl --cert /home/ca/client.crt --key /home/ca/client.key --cacert /home/ca/root.crt https://<the domain name on the server certificate>:<port>

As respostas a seguir confirmam que a autenticação mútua entre cliente e servidor foi concluída com êxito e que as requisições estão sendo distribuídas entre duas instâncias ECS.

[test@iZxxxw521i57Z ~]$ sudo curl --cert /home/ca/client.crt --key /home/ca/client.key --cacert /home/ca/ca.crt https://xxx.com.cn
Hello World ! This is ECS01.
[test@iZxxxw521i57Z ~]$ sudo curl --cert /home/ca/client.crt --key /home/ca/client.key --cacert /home/ca/ca.crt https://xxx.com.cn
Hello World ! This is ECS02.