Por que recebo uma mensagem de erro de negociação SSL/TLS do cliente quando me conecto ao meu balanceador de carga?
Quero solucionar um erro de negociação SSL/TLS que ocorre quando me conecto ao meu Elastic Load Balancer (ELB).
Breve descrição
Esse erro ocorre quando o cliente não consegue negociar uma conexão segura com o balanceador de carga. O problema geralmente é causado por cifras ou versões de protocolo não compatíveis.
Para estabelecer uma conexão TLS, confirme se seu cliente oferece suporte a pelo menos uma cifra e um protocolo definidos na política de segurança do balanceador de carga.
Resolução
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Identifique a política de segurança do seu balanceador de carga
Para identificar a política de segurança do seu balanceador de carga, conclua as seguintes etapas:
- Abra o console do Amazon Elastic Compute Cloud (Amazon EC2).
- No painel de navegação, em Balanceamento de carga, clique em Balanceadores de carga.
- Selecione o balanceador de carga e clique em Receptores.
- Veja a política de segurança.
Para Application Load Balancers e Network Load Balancers, encontre a política de segurança na coluna Política de segurança.
Para Classic Load Balancer, clique em Alterar na coluna Cifra para visualizar a política de segurança.
Para usar a AWS CLI, execute um dos seguintes comandos:
- Para Application Load Balancers e Network Load Balancers, execute o comando describe-listeners.
- Para Classic Load Balancer, execute o comando describe-load-balancers.
Identifique os protocolos e cifras compatíveis
Os Classic Load Balancer oferecem suporte a políticas de segurança personalizadas. No entanto, os Application Load Balancers e Network Load Balancers não oferecem suporte a políticas de segurança personalizadas.
Para obter mais informações sobre políticas de segurança, consulte os seguintes artigos:
- Políticas de segurança para o Application Load Balancer
- Políticas de segurança para o Network Load Balancer
- Políticas de segurança SSL predefinidas para Classic Load Balancers
(Opcional) Teste a política de segurança do seu balanceador de carga
Teste os protocolos e cifras compatíveis com a política de segurança do seu balanceador de carga. Use uma ferramenta de linha de comandos de código aberto, como sslscan ou openssl.
Para obter mais informações, consulte sslscan no site do GitHub.
Use o comando sslscan
Instale e execute o comando sslscan em uma instância do Amazon Linux EC2 ou em seu sistema local. Certifique-se de que seu balanceador de carga aceite conexões TLS do seu endereço IP de origem.
Para usar o sslscan em uma instância do Amazon Linux EC2, conclua as seguintes etapas:
-
Ative o repositório Extra Packages for Enterprise Linux (EPEL).
-
Execute o seguinte comando:
sudo yum install sslscan -
Execute o comando a seguir para verificar se há cifras compatíveis em seu balanceador de carga. Substitua exemplo.com pelo seu nome de domínio:
[ec2-user@ ~]$ sslscan --show-ciphers example.comObservação: o Amazon Linux 2023 (AL2023) não é compatível com o EPEL.
Use o comando openssl
Para testar a política de segurança do seu balanceador de carga, também é possível usar o comando openssl. Execute o comando openssl em uma instância do Amazon Linux EC2 ou em seu sistema local.
Para listar as cifras compatíveis com uma versão específica de SSL/TLS, execute o seguinte comando:
*$* openssl ciphers -v
O comando a seguir mostra as cifras compatíveis com o TLS versão TLS 1.2:
*$* openssl ciphers -V | grep "TLSv1.2"
Execute o comando s_client para testar versões TLS e suítes de cifras. Para descobrir a força de uma suíte de cifras específica, use um repositório de sites de terceiros, como o TLS Ciphersuite Search. Por exemplo, se você executou o comando a seguir, a saída mostrará cifras para www.example.com:
openssl s_client -connect example.com:443
A suíte TLS_PSK_WITH_AES_128_CBC_SHA é fraca. Se você usar a suíte em um servidor, receberá a seguinte mensagem de erro:
openssl s_client -connect example.com:443 -cipher PSK-AES128-CBC-SHA -quiet 140062732593056:error:140740B5:SSL routines:SSL23_CLIENT_HELLO:no ciphers available:s23_clnt.c:508:
A suíte ECDHE-RSA-AES128-GCM-SHA256 é forte. Se a suíte for usada no servidor, você recebe uma mensagem de sucesso semelhante à seguinte:
openssl s_client -connect example.com:443 -cipher ECDHE-RSA-AES128-GCM-SHA256 New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES128-GCM-SHA256 Session-ID: 73B49649716645B90D13E29656AEFEBF289A4956301AD9BC65D4832794E282CD Session-ID-ctx: Master-Key: C738D1E7160421281C4CAFEA49941895430168A4028B5D5F6CB6739B58A15235F640A5D740D368A4436CCAFD062B3338 Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None Start Time: 1647375807 Timeout : 300 (sec) Verify return code: 0 (ok)
Também é possível usar o comando openssl para especificar a versão do protocolo TLS usado na conexão. O exemplo a seguir mostra um teste que verifica se o TLS 1.1 é compatível com o servidor:
openssl s_client -connect example.com:443 -tls1_1 -quiet depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2 verify return:1 depth=1 C = US, O = DigiCert Inc, CN = DigiCert Global CA G2 verify return:1 depth=0 CN = *.peg.a2z.com verify return:1
(Opcional) Verifique os logs de conexão do seu Application Load Balancer e os logs de acesso do seu Network Load Balancer
Se seu cliente conectar receptores HTTPS ao seu Application Load Balancer, use os logs de conexão para verificar o protocolo e a cifra. O protocolo e a cifra usados na conexão estão nos campos tls_protocol e tls_cipher. Se a negociação de TLS falhar, o campo tls_verify_status será definido como Failed:$error_code, e os campos tls_protocol e tls_cipher serão definidos como "-".
Se seu cliente conectar receptores TLS ao seu Network Load Balancer, use os logs de acesso para verificar o protocolo e a cifra. O protocolo e a cifra usados na conexão estão nos campos tls_protocol_version e tls_cipher. Se a negociação de TLS falhar, nenhum log de acesso será registrado.
Para obter mais informações, consulte Logs de conexão para o Application Load Balancer e Logs de acesso do Network Load Balancer.
Atualize a política de segurança do seu balanceador de carga
Para usar protocolos ou cifras compatíveis para aumentar sua segurança, atualize a política de segurança do seu balanceador de carga. Para obter mais informações sobre como atualizar as políticas de segurança, consulte os seguintes artigos:
- Para Application Load Balancers, consulte Atualizar a política de segurança.
- Para Network Load Balancers, consulte Atualizar a política de segurança.
- Para Classic Load Balancers, consulte Atualizar a configuração da negociação SSL usando o console.
- Idioma
- Português

Conteúdo relevante
feita há um ano
feita há um mês
feita há 10 meses