Perché ricevo un errore di negoziazione SSL/TLS del client quando provo a connettermi al mio bilanciatore del carico?
Ricevo un errore di negoziazione Secure Sockets Layer (SSL) /Transport Layer Security (TLS) quando provo a connettermi al bilanciatore del carico. Perché ricevo questo errore?
Breve descrizione
Un errore di negoziazione TLS del client indica che una connessione TLS avviata dal client non è stata in grado di stabilire una sessione con il bilanciatore del carico. Gli errori di negoziazione TLS si verificano quando i client tentano di connettersi a un bilanciatore del carico utilizzando un protocollo o un codice non supportato dalla policy di sicurezza del bilanciatore del carico. Per stabilire una connessione TLS, assicurati che il client supporti quanto segue:
- Uno o più crittografie corrispondenti
- Un protocollo specificato nella policy di sicurezza
Risoluzione
Nota: se ricevi errori durante l'esecuzione dei comandi dell’Interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.
Identificare la policy di sicurezza del bilanciatore del carico
Dalla Console di gestione AWS:
1. Apri la console Amazon Elastic Compute Cloud (Amazon EC2).
2. Nel riquadro di navigazione, in BILANCIAMENTO DEL CARICO, scegli Bilanciatori del carico..
3. Seleziona il bilanciatore del carico, quindi scegli Ascoltatore.
4. Visualizza la policy di sicurezza.
Per Application Load Balancer e Network Load Balancer, trova la policy di sicurezza nella colonna Policy di sicurezza.
Per Classic Load Balancer, scegli Modifica nella colonna Crittografia per visualizzare la policy di sicurezza.
Dall'interfaccia della linea di comando di AWS:
- Per Application Load Balancer e Network Load Balancer, esegui il comando describe-listeners
- Per Classic Load Balancer, esegui il comando describe-load-balancers
Determina quali protocolli e crittografie sono supportati dalla policy di sicurezza del sistema di bilanciamento del carico
I Classic Load Balancer supportano policy di sicurezza personalizzate. Tuttavia, Application Load Balancer e Network Load Balancer non supportano policy di sicurezza personalizzate. Per ulteriori informazioni sulle policy di sicurezza, inclusa la policy di sicurezza predefinita, vedi quanto segue:
- Policy di sicurezza di Application Load Balancer
- Policy di sicurezza di Network Load Balancer
- Policy di sicurezza di Classic Load Balancer
(Facoltativo) Verificare la policy di sicurezza del bilanciatore del carico
Per testare i protocolli e le crittografie supportati dalla policy di sicurezza del bilanciatore del carico, utilizza uno strumento della linea di comando open source come sslscan.
Utilizzo del comando sslscan
Puoi installare ed eseguire il comando sslscan su qualsiasi istanza Amazon EC2 Linux o dal tuo sistema locale. Assicurati che il bilanciatore del carico che desideri testare accetti connessioni TLS dal tuo indirizzo IP di origine. Per usare sslscan su un'istanza Amazon Linux EC2:
1. Abilita il repository Extra Packages for Enterprise Linux (EPEL).
2. Esegui il comando sudo yum install sslscan.
3. Esegui il seguente comando per scansionare il bilanciatore del carico alla ricerca di crittografie supportate. Assicurati di sostituire example.com con il tuo nome di dominio.
[ec2-user@ ~]$ sslscan --show-ciphers example.com
Utilizzo del comando openssl
In alternativa, è anche possibile testare la policy di sicurezza del bilanciatore del carico usando il comando openssl. Puoi eseguire il comando openssl su qualsiasi istanza Amazon EC2 Linux o dal tuo sistema locale.
Per elencare le crittografie supportate per una particolare versione SSL/TLS, usa il comando crittografie openssl:
*$* openssl ciphers -v
Ad esempio, il seguente comando mostrerebbe le crittografie supportate dalla versione TLS TLSv1.2:
*$* openssl ciphers -V | grep "TLSv1.2"
Usa il comando s_client per testare le versioni TLS e le suite di crittografia. Per scoprire la forza di particolari suite di crittografia, puoi utilizzare un repository di siti Web come ciphersuites.info. Ad esempio, il comando seguente mostrerebbe le crittografie per www.example.com:
openssl s_client -connect example.com:443
Ad esempio, la suite TLS_PSK_WITH_AES_128_CBC_SHA è considerata debole. Se utilizzi la suite su un server, ricevi il seguente errore:
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:
La suite ECDHE-RSA-AES128-GCM-SHA256 è considerata forte. Se utilizzi la suite contro il server, ricevi un messaggio di successo simile al seguente:
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)
È inoltre possibile utilizzare il comando openssl per specificare la versione del protocollo TLS utilizzata nella connessione. L'esempio seguente mostra un test che verifica che TLS 1.1 sia supportato dal server:
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
Aggiornare la policy di sicurezza del bilanciatore del carico, se necessario
Per aggiornare la policy di sicurezza del bilanciatore del carico per utilizzare protocolli o crittografie supportate e raggiungere il livello di sicurezza desiderato, esegui le seguenti azioni:
- Aggiorna le policy di sicurezza di Application Load Balancer
- Aggiorna le policy di sicurezza di Network Load Balancer
- Aggiorna le policy di sicurezza di Classic Load Balancer
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un mese fa
- AWS UFFICIALEAggiornata un anno fa