Todos os produtos
Search
Central de documentação

Server Load Balancer:Use NLB to enable SSL offloading over TCP (mutual authentication)

Última atualização: Sep 21, 2026

O Network Load Balancer (NLB) oferece suporte a descarregamento de SSL em grande escala. Você pode implantar uma instância do NLB como entrada de tráfego e configurar um certificado SSL e um certificado de autoridade certificadora (CA) para ative a autenticação mútua, que exige que tanto o cliente quanto o servidor forneçam certificados digitais para provar suas identidades. Isso melhora a segurança das suas cargas de trabalho.

Informações de contexto

  • Autenticação unidirecional: O cliente deve verifique a identidade do servidor. O servidor não precisa verifique a identidade do cliente. O cliente baixe um certificado de chave pública do servidor para autenticação. A conexão só pode ser estabelecida após a verificação da identidade do servidor.

  • Autenticação mútua: O cliente baixe um certificado do servidor (certificado de chave pública) e envie um certificado do cliente (certificado de chave pública) para o servidor para autenticação. A conexão só é estabelecida após a verificação das identidades do cliente e do servidor. A autenticação mútua oferece maior segurança.

Pré-requisitos

  • crie uma instância do NLB. Para mais informações, consulte crie e gerencie instâncias de NLB.

  • crie três instâncias do Elastic Compute Service (ECS). Para informações sobre como crie uma instância, consulte crie uma instância usando o assistente.

    • Adicione o ECS01 e o ECS02 à instância do NLB como servidores de back-end. Aplique diferentes aplicações NGINX no ECS01 e no ECS02.

      Deploy applications on ECS01

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS01." > index.html
      

      Deploy applications on ECS02

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS02." > index.html
      
    • Use o ECS03 para gerar certificados de servidor e de cliente autoassinados. Baixe o OpenSSL no site do OpenSSL e instale no ECS03. A versão do OpenSSL deve ser 1.1.1 ou posterior. Se você usar um servidor Linux existente para gerar certificados autoassinados, não será necessário crie o ECS03.

  • crie um grupo de servidores para a instância do NLB e adicione o ECS01 e o ECS02 ao grupo. Neste exemplo, as portas de back-end do ECS01 e do ECS02 são definidas como 80.

    Importante
    • O protocolo de back-end do grupo de servidores deve ser TCP. As solicitações enviadas do NLB para o servidor de back-end são descriptografadas por SSL, e os servidores de back-end não precisam realizar a descriptografia SSL nas solicitações recebidas.

    • Você não pode associar listeners que usam SSL sobre TCP a grupos de servidores para os quais ele está ativado. Certifique-se de que o recurso Client IP Preservation esteja desativado para o grupo de servidores.

Etapa 1: Preparar um certificado de CA

  1. Faça login no Certificate Management Service console

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

  3. Na página Private Certificate Management, na aba Private CAs, localize o certificado de CA raiz.

  4. Clique em no ícone icon ao lado do certificado de CA raiz, localize a CA intermediária privada que deseja gerencie e clique em Apply for Certificate na coluna Actions.

  5. No painel Apply for Certificate, defina os parâmetros e clique em Confirm.

    A seção a seguir descreve os parâmetros relevantes para este tópico. Para mais informações, consulte gerencie certificados privados.

    Parâmetro

    Descrição

    Certificate Type

    selecione o tipo de certificado privado que deseja comprar. Neste exemplo, Client Certificate está selecionado.

    Personal Name

    O identificador exclusivo para o usuário cliente. Necessário apenas para um certificado de cliente.

    Neste exemplo, insira o nome de domínio da instância NLB.

    Validity Period

    especifique um período de validade para o certificado privado. O período de validade do certificado privado não pode exceder a duração da assinatura do service Private Certificate Authority (PCA) comprado.

    Neste exemplo, o período de validade padrão é usado, que é de 30 dias.

    O certificado privado é emitido imediatamente após o envio da solicitação. Para visualize os detalhes do certificado privado, localize a CA privada, clique em Certificates na coluna Actions e visualize as informações na página Certificates.

Etapa 2: Preparar um certificado de servidor

Um navegador verifica a identidade de um servidor checando se o certificado enviado pelo servidor foi emitido por uma CA confiável. Este tópico descreve dois métodos para obter um certificado de servidor. Você pode comprar um certificado de servidor no Certificate Management Service ou envie um certificado autoassinado para o Certificate Management Service.

Método 1: Comprar um certificado de servidor

Você pode comprar certificados de servidor no Certificate Management Service ou em outros provedores de services. Para mais informações, consulte Purchase an SSL certificate.

Método 2: envie um certificado de servidor autoassinado

  1. Faça login remoto no ECS03 e execute o seguinte comando para gerar um certificado de servidor autoassinado. Certifique-se de que o certificado de CA esteja armazenado no ECS03. Os arquivos de certificado de CA usados neste exemplo são root.crt e root.key.

    1. execute o seguinte comando para gerar uma chave privada para o certificado do servidor:

      sudo openssl genrsa -out server.key 4096
    2. execute o seguinte comando para gerar uma solicitação de assinatura de certificado (CSR):

      sudo openssl req -new -out server.csr -key server.key

      configure os outros parâmetros. Exemplos:

      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) []:www.example.com
      Email Address []:a.alibaba.com
      A challenge password []:
      An optional company name []:
      Importante

      defina o Common Name como o nome de domínio associado ao certificado do servidor. Certifique-se de que o nome de domínio seja válido. Mantenha os valores dos outros parâmetros iguais aos do certificado raiz e do certificado do cliente.

      Neste exemplo, a instância NLB usa o nome de domínio personalizado www.example.com para fornecer services externos. Portanto, o Common Name é definido como www.example.com.

    3. execute o seguinte comando para gerar uma chave pública para o certificado do servidor:

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

      A seguinte saída é retornada:

      Signature ok
      subject=/C=cn/ST=bj/L=bj/O=alibaba/OU=test/CN=www.xxx.com.cn/emailAddress=a.alibaba.com
      Getting Private key
      Getting CA Private Key
    4. execute o seguinte comando para crie uma pasta para armazenar os arquivos do certificado do servidor:

      sudo mkdir -p /root/ssl
    5. execute o seguinte comando para copiar o certificado do servidor para a pasta:

      sudo cp server.crt /root/ssl
      sudo cp server.key /root/ssl
    6. execute o seguinte comando para visualize o certificado do servidor server.crt e a chave privada server.key do certificado do servidor:

      cd /root/ssl
      ls

      A seguinte saída é retornada:

      root.crt  root.csr  root.key  root.srl  server.crt  server.csr  server.key
  2. Neste exemplo, um cliente Windows é usado. Abra a interface de linha de comando (CLI) no cliente Windows e execute os seguintes comandos para exportar os arquivos de certificado do servidor gerados em Step 1 para a área de trabalho local:

    scp root@IPaddress:/root/ssl/server.crt C:\Users\Public\Desktop    #Replace 'IPaddress' with the IP address of the server that generates the server certificate
    scp root@IPaddress:/root/ssl/server.key C:\Users\Public\Desktop    #Replace 'IPaddress' with the IP address of the server that generates the server certificate
  3. Faça login no Certificate Management Service console.

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

  5. Clique em na aba Uploaded Certificates e clique em Upload Certificate.

  6. No painel Upload Certificate, defina os seguintes parâmetros e clique em OK.

    Para mais informações, consulte envie, sincronize e compartilhe certificados SSL.

    Parâmetro

    Descrição

    Certificate Algorithm

    Neste exemplo, Internationally Accepted Algorithm está selecionado.

    Certificate Name

    insira um nome para o certificado que deseja envie.

    Certificate File

    insira o conteúdo do arquivo de certificado de CA codificado em PEM.

    Você pode usar um dos seguintes métodos para insira o conteúdo. Método 1: Use um editor de texto para abrir o arquivo de certificado de CA no formato PEM ou CRT. Em seguida, copie o conteúdo para o campo Certificate File. Método 2: Clique em Upload and Parse File abaixo do campo Certificate File. Em seguida, selecione o arquivo de certificado de CA no seu computador para envie o conteúdo do arquivo.

    Neste exemplo, o arquivo de certificado do servidor server.crt é enviado.

    Certificate Key

    insira o conteúdo do arquivo de chave privada codificado em PEM.

    Você pode usar um dos seguintes métodos para insira o conteúdo. Método 1: Use um editor de texto para abrir o arquivo de chave privada no formato KEY. Em seguida, copie o conteúdo para o campo Add Private Key. Método 2: Clique em Upload and Parse File abaixo do campo Add Private Key. Em seguida, selecione o arquivo de chave privada no seu computador para envie o conteúdo do arquivo.

    Neste exemplo, o arquivo de chave privada server.key é enviado.

    Certificate Chain

    insira o conteúdo do arquivo da cadeia de certificados. Este parâmetro é ignorado neste exemplo.

Etapa 3: Preparar um certificado de cliente

Você pode usar um dos seguintes métodos para preparar um certificado de cliente de acordo com os requisitos do seu negócio:

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

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

  3. Na página Private Certificate Management, na aba Private CAs, localize o certificado de CA raiz.

    Para mais informações sobre como comprar um certificado de CA raiz, consulte compre e ative uma CA privada.

  4. Localize o certificado de CA raiz e clique em no ícone icon. Em seguida, localize o certificado de CA subordinada e clique em Certificates na coluna Actions.

  5. Na página Certificates, localize o certificado privado de destino. Na coluna Actions, clique em Download.

  6. Na caixa de diálogo Download Certificate, selecione um formato de certificado e clique em Confirm and Download. Neste exemplo, o formato CRT é selecionado, o certificado do cliente é client.crt, e a chave privada do certificado é client.key.

  7. Converta o certificado do cliente para um arquivo PKCS12 reconhecível pelo navegador.

    1. Faça login remoto no ECS03. Para mais informações, consulte Guidelines on instance connection.

    2. execute o seguinte comando para crie uma pasta para armazenar o certificado do cliente:

      sudo mkdir -p /root/ca/users
    3. envie o certificado do cliente client.crt e a chave privada do certificado client.key para o diretório users.

    4. execute o seguinte comando para converter o certificado do cliente em um arquivo PKCS12:

      sudo openssl pkcs12 -export -clcerts -in /root/ca/users/client.crt -inkey /root/ca/users/client.key -out /root/ca/users/client.p12
    5. Siga as instruções para defina uma chave de criptografia para a chave privada do certificado.

    6. insira a senha usada para exportar o certificado do cliente. Esta senha é usada para criptografar o certificado do cliente e é necessária para instale o certificado do cliente.

      A seguinte saída é retornada:

      Enter pass phrase for /root/ca/users/client.key:
      Enter Export Password:
      Verifying - Enter Export Password:
  8. execute os seguintes comandos para visualize o certificado do cliente gerado:

    cd /root/ca/users
    ls

    A seguinte saída é retornada:

    client.crt  client.key  client.p12
  9. Neste exemplo, um cliente Windows é usado. Abra a CLI e execute o seguinte comando para exportar o certificado do cliente:

    scp root@IPaddress:/root/ca/users/client.p12 C:\Users\Public\Desktop   #Replace 'IPaddress' with the IP address of the server that generates the client certificate

Etapa 4: instale o certificado do cliente

instale o certificado do cliente no seu cliente. Neste exemplo, um cliente Windows e um cliente Linux são usados para mostrar como instale o certificado do cliente.

Cliente Windows

Importe o certificado do cliente para o Microsoft Edge.

  1. Abra o Microsoft Edge. No canto superior direito, escolha Settings > Settings.

  2. No painel de navegação à esquerda, clique em na aba Privacy, search, and services. Em seguida, clique em Manage certificates na seção Security e importe o arquivo PKCS12. Nesta etapa, você deve insira a senha usada para exportar o certificado do cliente em Step 3.

Cliente Linux

Se o ECS03 for usado para gerar o certificado do cliente, o certificado do cliente será armazenado no diretório do ECS03. Se outro cliente Linux for usado para gerar o certificado do cliente, execute as seguintes etapas para copiar os certificados para o diretório do cliente Linux primeiro:

  1. Faça login no cliente Linux. execute os seguintes comandos para copiar o certificado do cliente, o certificado do servidor e o certificado raiz para um diretório:

    1. execute o seguinte comando para crie uma pasta:

      sudo mkdir /root/ca
    2. execute o seguinte comando para modifique as permissões do diretório:

      sudo chmod 700 /root/ca
    3. execute o seguinte comando para copiar os certificados para o diretório do cliente Linux:

      O caminho a seguir é apenas para referência. especifique o caminho real que você usa.

      sudo scp home@IPaddress:/root/ca/users/client.crt /root/ca     //Replace 'IPaddress' with the IP address of the server that generates the client certificate
      sudo scp home@IPaddress:/root/ca/root.crt /root/ca       //Replace 'IPaddress' with the IP address of the server that generates the root certificate
      sudo scp home@IPaddress:/root/ca/root.key /root/ca       //Replace 'IPaddress' with the IP address of the server that generates the root certificate
      sudo scp home@IPaddress:/root/ssl/server.crt /root/ca     //Replace 'IPaddress' with the IP address of the server that generates the server certificate
      sudo scp home@IPaddress:/root/SSL/server.key /root/ca     //Replace 'IPaddress' with the IP address of the server that generates the server certificate

Etapa 5: configure a autenticação mútua para um listener que usa SSL sobre TCP

  1. Faça login no NLB console.

  2. Na barra de navegação superior, selecione a região da instância do NLB.

  3. Na página Instances, localize a instância do NLB e clique em Actions na coluna Create Listener.

  4. Na etapa Configure Listener, defina os seguintes parâmetros e clique em Next.

    A tabela a seguir descreve apenas alguns dos parâmetros. Mantenha os valores padrão para os outros parâmetros. Para mais informações, consulte crie um listener que usa SSL sobre TCP.

    Parâmetro

    Procedimento

    Listener Protocol

    selecione um protocolo de listener. Neste exemplo, TCPSSL está selecionado.

    Listener Port

    especifique uma porta na qual a instância do NLB escuta. A instância do NLB usa a porta para receber solicitações e encaminhá-las aos servidores de back-end. A porta 443 é usada neste exemplo.

  5. Na etapa Configure SSL Certificate, selecione o certificado do servidor especificado em Step 2 na lista suspensa Server Certificate.

  6. Ative o Enable Mutual Authentication. selecione o certificado de CA comprado na Etapa 1 na lista suspensa Default CA Certificate.

  7. selecione uma TLS Security Policy e clique em Next.

  8. Na etapa Select Server Group, selecione o grupo de servidores que você criou e visualize as informações sobre os servidores de back-end ECS01 e ECS02. Neste exemplo, as portas dos servidores de back-end são definidas como 80. Em seguida, clique em Next.

  9. Na etapa Configuration Review, confirme as configurações e clique em Submit.

Etapa 6: verifique a autenticação mútua

Cliente Windows

  1. acesse a página Instances do NLB, clique em no ID da instância do NLB que deseja gerencie e clique em na aba Listener para visualize o status de verificação de integridade dos listeners que usam SSL sobre TCP.

    Se a coluna Health Check Status exibir Healthy, os servidores de back-end podem processar solicitações encaminhadas pelo listener do NLB.

  2. insira https://The domain name associated with the server certificate na barra de endereços do seu navegador, por exemplo, https://www.example.com. Na caixa de diálogo que aparece, selecione o certificado usado para verifique a identidade do cliente e clique em OK.

  1. Para evitar problemas causados pelo cache do navegador, recomendamos que você use uma janela de navegação privativa para acesse o nome de domínio DNS sempre que testar o balanceamento de carga da Camada 4. Você pode observar que as solicitações são distribuídas para as duas instâncias do ECS. Um acesso retorna Hello World ! This is ECS01. e outro acesso retorna Hello World ! This is ECS02.

Cliente Linux

Faça login no cliente Linux onde o certificado raiz, o certificado do servidor e o certificado do cliente estão armazenados e execute os seguintes comandos para testar a autenticação mútua:

sudo curl --cert /root/ca/client.crt --key /root/ca/client.key --cacert /root/ca/root.crt www.example.com

www.example.com é o nome de domínio associado ao certificado do servidor.

Se o seguinte pacote de resposta de eco for retornado, tanto o cliente quanto o servidor passaram na autenticação mútua, e as solicitações são distribuídas para o ECS01 e ECS02.

$ sudo curl --cert /root/ca/client.crt --key /root/ca/client.key --cacert /root/ca/root.crt https://xxx.com.cn
Hello World ! This is ECS01.
$ sudo curl --cert /root/ca/client.crt --key /root/ca/client.key --cacert /root/ca/root.crt https://xxx.com.cn
Hello World ! This is ECS02.