Se a autenticação unidirecional estiver configurada, é possível estabelecer uma conexão HTTPS após a autenticação do servidor. Com a autenticação mútua, a conexão HTTPS é estabelecida apenas após a autenticação do cliente e do servidor. A autenticação mútua oferece um nível de segurança mais elevado. Configure a autenticação mútua para proteger seus serviços críticos para os 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, usamos um certificado de autoridade certificadora (CA) autoassinado para assinar o certificado do cliente. Execute as etapas a seguir para configurar a autenticação mútua no listener HTTPS.

Pré-requisitos
Você criou uma instância CLB.
Você criou dois servidores de back-end, ECS01 e ECS02, cada um executando um aplicativo diferente.
Etapa 1: Comprar um certificado de servidor
Compre um certificado de servidor no console do Certificate Management Service da Alibaba Cloud ou em outros provedores de serviços. Use um navegador e verifique se uma autoridade confiável emitiu o certificado enviado pelo servidor.
Este tópico usa como exemplo um certificado de servidor comprado no console do Certificate Management Service da Alibaba Cloud. Para mais informações, consulte Purchase an SSL certificate.
Certifique-se de ter um nome de domínio válido para associar ao certificado.
Etapa 2: Gerar um certificado CA usando o OpenSSL
Na autenticação mútua, uma CA autoritativa deve emitir o certificado do servidor para que os navegadores o considerem confiável (Etapa 1). No entanto, gerencie e distribua os certificados de cliente, pois eles não precisam de uma cadeia de confiança pública. Portanto, use um certificado CA autoassinado para emiti-los. Siga estas etapas para gerar um certificado CA autoassinado e emitir certificados de cliente.
Acesse qualquer máquina Linux com o OpenSSL instalado.
-
Execute o comando a seguir e crie a chave privada do certificado raiz:
openssl genrsa -out root.key 4096 -
Execute o comando a seguir e crie um arquivo de solicitação de assinatura de certificado (CSR) para o certificado raiz:
openssl req -new -out root.csr -key root.keyPor favor, insira as informações conforme solicitado. Veja um exemplo:
NotaO 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 []: -
Execute o comando a seguir e crie o certificado raiz:
openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650A saída é 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 Execute
lse visualize o certificado raiz geradoroot.crte a chave privadaroot.key.
Etapa 3: Gerar um certificado de cliente
Agora, execute o comando a seguir para gerar uma chave privada para o certificado de cliente:
Execute o comando a seguir para gerar um arquivo CSR para o certificado de cliente e defina o Common Name como o seu nome de domínio.
Execute o comando a seguir e crie o certificado de cliente:
Execute o comando a seguir para converter o certificado de cliente gerado
client.crtem um arquivo PKCS12 compatível com o navegador. Siga as instruções e insira a senha de criptografia definida para a chave privada do cliente.Execute
lse visualize os arquivos de certificado de cliente gerados:client.key,client.crteclient.p12.
openssl genrsa -out client.key 4096
openssl req -new -out client.csr -key client.key
openssl x509 -req -in client.csr -out client.crt -CA root.crt -CAkey root.key -CAcreateserial -days 3650
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
Etapa 4: Instalar o certificado de cliente
Agora, instale o certificado de cliente no cliente.
Windows client
Clique duas vezes no arquivo client.p12 e siga o Assistente de Importação de Certificados e instale-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 é /home/ca. Execute sudo chmod 700 /home/ca e modifique as permissões do diretório.
Etapa 5: Fazer upload do certificado de servidor e do certificado CA
Faça login no console do CLB.
No painel de navegação à esquerda, escolha e clique em Add Certificate para fazer upload do certificado de servidor.
-
No painel Add Certificate, clique em Third-party Certificates, configure os parâmetros a seguir e clique em Create.
Parâmetro
Descrição
Certificate Name
Insira um nome para o certificado.
Certificate Type
Selecione Server Certificate.
Public Key Certificate
O conteúdo do certificado de servidor. Cole o conteúdo no editor.
Private Key
A chave privada do certificado de servidor. Cole a chave privada no editor.
Region
Selecione a região da instância CLB.
Na página Certificates, clique em Add Certificate para fazer upload do certificado CA.
-
No painel Add Certificate, clique em Third-party Certificates, configure os parâmetros a seguir e clique em Create.
Parâmetro
Descrição
Certificate Name
Insira um nome para o certificado.
Certificate Type
Selecione CA Certificate.
Client CA Certificate
Faça upload do certificado de chave pública do cliente.
Region
Selecione a região da instância CLB.
Etapa 6: Configurar a autenticação mútua em um listener HTTPS
O CLB rejeita solicitações de clientes sem certificado instalado. Se a sua instância CLB estiver em um ambiente de produção, teste essa configuração primeiro em um ambiente de homologação. Como alternativa, use uma nova porta de escuta para evitar a interrupção dos serviços existentes.
Faça login no console do Classic Load Balancer.
Clique no ID da instância CLB que você criou.
Na aba Listeners, clique em Add Listener.
-
Na aba Protocol & Listener, configure os parâmetros a seguir e clique em Next.
Select Listener Protocol: HTTPS
Listener Port: 443
Na aba Certificate Management Service, selecione o certificado de servidor enviado.
Clique em Modify ao lado de Advanced Settings, ative a autenticação mútua, selecione o certificado CA enviado e clique em Next.
Selecione Default Server Group e clique em Add para adicionar servidores de back-end.
Aceite os valores padrão dos parâmetros restantes e clique em Next para avançar no assistente. Na página final, clique em Submit e envie o formulário e crie o listener.
Etapa 7: Testar o recurso de autenticação mútua
Windows client
Em um navegador, insira
https://ip:port, onde ip é o endereço IP público do CLB. Na caixa de diálogo exibida, confirme o certificado conforme solicitado.-
Atualize a página da web. Você verá que o CLB distribui as solicitações uniformemente aos servidores de back-end.
A página exibe
Hello World ! This is ECS01., o que indica que o CLB encaminhou a solicitação ao servidor ECS01.A página exibe
Hello World ! This is ECS02., o que indica que o CLB encaminhou a solicitação ao servidor ECS02.
Linux client
Acesse o cliente Linux com os certificados instalados e execute o comando a seguir e verifique 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>
Se você receber as respostas a seguir, a autenticação mútua entre o cliente e o servidor estará concluída, e o CLB distribuirá as solicitações para as 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.