Ative a autenticação mútua no ALB para exigir que o cliente e o servidor verifiquem a identidade um do outro antes de estabelecer uma conexão. Isso evita ataques do tipo 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 a autenticação mútua
A maioria das aplicações web usa a autenticação unidirecional para estabelecer conexões HTTPS. O cliente verifica a identidade do servidor, garantindo que está se conectando ao servidor correto.
Para aplicações que exigem maior segurança, o servidor também precisa verificar a identidade do cliente. A autenticação mútua garante que apenas clientes autorizados acessem o serviço, reduzindo riscos como ataques man-in-the-middle e acessos não autorizados.
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 os clientes, você não precisa usar a 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 suportam este recurso.
Apenas listeners HTTPS suportam autenticação mútua. Listeners QUIC e HTTP não suportam este recurso.
Cenário de exemplo
Uma empresa implantou uma plataforma de transações online que inicialmente usava apenas autenticação HTTPS unidirecional. Dispositivos não autorizados tentavam acessar o sistema, representando riscos de vazamento de dados e adulteração de transações. Com o crescimento do tráfego, a plataforma também enfrentou uma pressão de desempenho cada vez maior 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 requisiçõ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, evitando acessos não autorizados e reduzindo o risco de vazamento de dados e adulteração de transações.
Pré-requisitos
-
Você purchased ou uploaded um certificado de servidor no Certificate Management Service.
Este tópico usa como exemplo um certificado de servidor comprado no Certificate Management Service console.
NotaAo comprar um certificado SSL, você deve vinculá-lo a um nome de domínio. Certifique-se de ter um nome de domínio válido e acessível.
Para autenticação mútua, você também precisa de um certificado de CA. Você pode purchase and enable a subordinate CA certificate (requer cota de certificado disponível) ou upload um certificado de CA raiz ou subordinada autoassinado.
-
Você created a VPC (VPC1) e created two ECS instances (ECS01 e ECS02) na VPC1. Os serviços de aplicação estão implantados em ambas as instâncias.
Este exemplo usa o Alibaba Cloud Linux 3 como sistema operacional e o Nginx para configurar o serviço HTTPS.
Uma ALB instance is created. Para usar autenticação mútua ou certificados SM, a edição da instância deve ser Standard Edition ou WAF-enabled Edition.
-
Você created a server group e adicionou o ECS01 e o ECS02 como servidores de backend.
Se quiser 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 serviço HTTPS esteja implantado nos servidores de backend.
Procedimento
Etapa 1: Configurar o certificado do cliente
Você deve preparar e exportar um certificado de cliente.
Este tópico descreve dois métodos para obter um certificado de CA. Você pode purchase um certificado de CA e solicitar um certificado de cliente no Certificate Management Service, ou upload um certificado de CA autoassinado no Certificate Management Service.
1. Preparar um certificado de cliente
Pelo console
Para mais informações, consulte Apply for a private certificate.
Faça login no Certificate Management Service console.
No painel de navegação à esquerda, escolha . Na página Private Certificate Management, selecione a região onde o serviço PCA está localizado.
Na aba Private CAs, encontre a CA intermediária de destino e clique em Apply for Certificate na coluna Actions.
-
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. Você pode manter os valores padrão para other parameters ou modificá-los conforme necessário.
Após enviar a solicitação, a CA privada emite o certificado imediatamente. Em seguida, você pode clicar em Certificates na coluna Actions da CA intermediária para visualizar o certificado emitido.
Autoassinado
-
Faça login no ECS01 e execute os seguintes comandos 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 usa um certificado de CA raiz autoassinado.
-
Execute o seguinte comando para criar uma chave privada para o certificado de CA raiz:
openssl genrsa -out root.key 4096 -
Execute o seguinte comando para criar uma solicitação de assinatura de certificado (CSR) para o certificado de CA raiz:
openssl req -new -out root.csr -key root.keyInsira as informações necessárias conforme solicitado. O código a seguir fornece um exemplo:
NotaCertifique-se de que o Common Name do certificado de 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 []: -
Execute o seguinte comando para criar o certificado de CA raiz:
openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650A seguinte 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 -
Execute o comando
lspara visualizar o certificado de CA raiz geradoroot.crte sua chave privadaroot.key.Você pode download esses arquivos de certificado de CA raiz para o seu computador para uso posterior.
-
-
Faça o upload do certificado de CA raiz autoassinado para o Certificate Management Service.
Faça login no Certificate Management Service console.
No painel de navegação à esquerda, escolha .
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.
Na página Certificate Application Repository, clique no repositório que você criou.
Na página Certificates, clique em Uploaded Certificate. No painel CA information, faça o upload do arquivo de certificado de CA raiz
root.crte 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:
Na aba Private CAs, encontre a CA subordinada de destino e clique em Certificates na coluna Actions.
Na página Certificates, encontre o certificado privado de destino e clique em Download na coluna Actions.
-
Na caixa de diálogo Download Certificate, selecione o formato de certificado que deseja baixar e clique em Confirm and Download. Se você selecionar Include Trust Chain, o certificado baixado incluirá a cadeia de certificados completa.
Neste exemplo, selecione PFX para Certificate format. Este formato é reconhecido pelos navegadores.
Os arquivos baixados incluem um arquivo de certificado de cliente com a extensão
.pfxe um arquivo de texto com a extensão.txtque 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 seguintes etapas para gerar um certificado de cliente:
-
Execute o seguinte comando para gerar uma chave privada para o certificado de cliente:
openssl genrsa -out client.key 4096 -
Execute o seguinte comando para gerar um CSR para o certificado de cliente:
openssl req -new -out client.csr -key client.keyInsira as informações necessárias conforme solicitado. O código a seguir fornece um exemplo:
NotaCertifique-se de que o Common Name do certificado de 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 []: -
Execute o seguinte comando para gerar o certificado de cliente.
openssl x509 -req -in client.csr -out client.crt -CA root.crt -CAkey root.key -CAcreateserial -days 3650A seguinte 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 -
Execute o seguinte comando para converter o certificado de cliente gerado
client.crtem um arquivo PKCS12, que é 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 -
Execute o comando
lspara visualizar o arquivo de certificado de clienteclient.p12gerado.Você pode download o arquivo de certificado de cliente para o seu computador para uso posterior no cliente.
Etapa 2: Configurar um listener de autenticação mútua
Na barra de navegação superior do ALB console, selecione a região onde a instância ALB está implantada. Na página Instances, encontre a instância ALB que deseja gerenciar e clique em seu ID.
-
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. Você pode manter os valores padrão para other HTTPS listener parameters ou modificá-los conforme necessário.
-
Na etapa SSL Certificate, selecione o certificado de servidor que você comprou. Em seguida, ative Enable Mutual Authentication e 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.
Defina CA Certificate Source como Alibaba Cloud. Na lista suspensa Default CA Certificate, selecione o certificado de CA que você solicitou em Step 1: Configure the client certificate.
Defina CA Certificate Source como Third-party. Na lista suspensa Default CA Certificate, selecione o certificado de CA autoassinado que você enviou em Step 1: Configure the client certificate.
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.
Na etapa Confirm, revise as configurações e clique em Submit.
Etapa 3: Configurar a resolução de DNS
Para ambientes de produção, recomendamos que você crie um registro CNAME para mapear seu nome de domínio personalizado para o nome DNS da instância ALB.
No painel de navegação à esquerda do ALB console, escolha . Na página Instances, copie o nome DNS da instância ALB criada.
-
Execute as seguintes etapas para adicionar um registro CNAME.
-
Na página DNS Resolution, encontre o nome de domínio personalizado de destino e clique em DNS Settings na coluna Operations.
NotaSe o seu nome de domínio não estiver registrado na Alibaba Cloud, você deve primeiro add your domain name para o console do Alibaba Cloud DNS antes de poder configurar as definições de DNS.
-
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. Você pode manter os valores padrão para other DNS record parameters ou modificá-los conforme necessário.
-
Etapa 4: Testar a autenticação mútua
Este exemplo usa um cliente Windows e o navegador Chrome.
-
Instale o exported client certificate no cliente.
Clique duas vezes no arquivo de certificado de cliente baixado e siga as instruções no assistente de importação de certificado para instalar o certificado de cliente.
No navegador, insira
https://<your custom domain name>. Na caixa de diálogo que aparece, selecione o certificado a ser usado para a autenticação do cliente.-
Atualize o navegador. Você pode observar que as requisições do cliente são distribuídas entre os servidores ECS01 e ECS02.
Se a página retornar Hello World ! This is ECS01., a requisição é encaminhada para o ECS01.
Se você atualizar a página e ela retornar Hello World ! This is ECS02., a requisição é encaminhada para o ECS02.
Referências
Operações no console
-
Informações relacionadas ao ALB:
-
Informações relacionadas a certificados:
Referência de API
Você pode chamar as seguintes operações de API e definir o parâmetro CaEnabled como true para ativar a autenticação mútua.