Warum erhalte ich einen Client-SSL/TLS-Verhandlungsfehler, wenn ich versuche, eine Verbindung zu meinem Load Balancer herzustellen?
Ich erhalte einen Secure Sockets Layer (SSL)/Transport Layer Security (TLS)-Verhandlungsfehler, wenn ich versuche, eine Verbindung zu meinem Load Balancer herzustellen. Warum erhalte ich diesen Fehler?
Kurzbeschreibung
Ein Client-TLS-Verhandlungsfehler bedeutet, dass eine vom Client initiierte TLS-Verbindung keine Sitzung mit dem Load Balancer aufbauen konnte. TLS-Verhandlungsfehler treten auf, wenn Clients versuchen, mithilfe eines Protokolls oder einer Chiffre, die die Sicherheitsrichtlinie des Load Balancers nicht unterstützt, eine Verbindung zu einem Load Balancer herzustellen. Um eine TLS-Verbindung herzustellen, stellen Sie sicher, dass Ihr Client Folgendes unterstützt:
- Eine oder mehrere passende Chiffren
- Ein in der Sicherheitsrichtlinie spezifiziertes Protokoll
Lösung
Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.
Identifizieren der Sicherheitsrichtlinie Ihres Load Balancers
Von der AWS-Managementkonsole aus:
1. Öffnen Sie die Amazon Elastic Compute Cloud (Amazon EC2)-Konsole.
2. Wählen Sie im Navigationsbereich unter LOAD BALANCING die Option Load Balancers aus.
3. Wählen Sie den Load Balancer und dann Listeners aus.
4. Sehen Sie sich die Sicherheitsrichtlinie an.
Für Application Load Balancer und Network Load Balancer finden Sie die Sicherheitsrichtlinie in der Spalte Security policy.
Wählen Sie für Classic Load Balancers Change in der Spalte Chiffre, um die Sicherheitsrichtlinie anzuzeigen.
Aus der AWS CLI:
- Führen Sie für Application Load Balancer und Network Load Balancer den Befehl describe-listeners aus
- Führen Sie für Classic Load Balancers den Befehl describe-load-balancers aus
Stellen Sie sicher, dass die Protokolle und Chiffren von der Sicherheitsrichtlinie Ihres Load Balancers unterstützt werden
Classic Load Balancer unterstützen benutzerdefinierte Sicherheitsrichtlinien. Application Load Balancer und Network Load Balancer unterstützen jedoch keine benutzerdefinierten Sicherheitsrichtlinien. Weitere Informationen zu Sicherheitsrichtlinien, einschließlich der Standardsicherheitsrichtlinie, finden Sie unter den folgenden Links:
- Sicherheitsrichtlinien für Application Load Balancer
- Sicherheitsrichtlinien für Network Load Balancer
- Classic-Load-Balancer-Sicherheitsrichtlinien
(Optional) Testen Sie die Sicherheitsrichtlinie Ihres Load Balancers
Verwenden Sie ein Open-Source-Befehlszeilentool wie sslscan, um die Protokolle und Chiffren zu testen, die von der Sicherheitsrichtlinie Ihres Load Balancers unterstützt werden.
Verwenden des Befehls sslscan
Sie können den Befehl sslscan auf jeder Amazon-EC2-Linux-Instance oder von Ihrem lokalen System aus installieren und ausführen. Stellen Sie sicher, dass der Load Balancer, den Sie testen möchten, TLS-Verbindungen von Ihrer Quell-IP-Adresse akzeptiert. Um sslscan auf einer Amazon-Linux-EC2-Instance zu verwenden:
1. Aktivieren Sie das Repository Extra Packages for Enterprise Linux (EPEL).
2. Führen Sie den Befehl sudo yum install sslscan aus.
3. Führen Sie den folgenden Befehl aus, um Ihren Load Balancer nach unterstützten Chiffren zu durchsuchen. Ersetzen Sie example.com durch Ihren Domainnamen.
[ec2-user@ ~]$ sslscan --show-ciphers example.com
Verwenden des Befehls openssl
Sie können die Sicherheitsrichtlinie Ihres Load Balancers auch mit dem Befehl openssl testen. Sie können den Befehl openssl auf jeder Amazon-EC2-Linux-Instance oder von Ihrem lokalen System aus ausführen.
Um die unterstützten Chiffren für eine bestimmte SSL/TLS-Version aufzulisten, verwenden Sie den Befehl openssl ciphers:
*$* openssl ciphers -v
Der folgende Befehl würde beispielsweise Chiffren anzeigen, die von der TLS-Version TLSv1.2 unterstützt werden:
*$* openssl ciphers -V | grep "TLSv1.2"
Verwenden Sie den Befehl s_client, um TLS-Versionen und Cipher-Suites zu testen. Um die Stärke bestimmter Chipher-Suites zu ermitteln, können Sie ein Website-Repository wie ciphersuites.info verwenden. Der folgende Befehl würde beispielsweise Chiffren für www.example.com anzeigen:
openssl s_client -connect example.com:443
Beispielsweise wird die Suite TLS_PSK_WITH_AES_128_CBC_SHA als schwach angesehen. Wenn Sie die Suite gegen einen Server verwenden, erhalten Sie die folgende Fehlermeldung:
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:
Die Suite ECDHE-RSA-AES128-GCM-SHA256 wird als stark angesehen. Wenn Sie die Suite gegen den Server verwenden, erhalten Sie eine Erfolgsmeldung ähnlich der folgenden:
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)
Sie können auch den Befehl openssl verwenden, um die Version des TLS-Protokolls anzugeben, das in der Verbindung verwendet wird. Das folgende Beispiel zeigt einen Test, der überprüft, ob TLS 1.1 vom Server unterstützt wird:
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
Aktualisieren der Sicherheitsrichtlinie Ihres Load Balancers bei Bedarf
Gehen Sie wie folgt vor, um die Sicherheitsrichtlinie Ihres Load Balancers so zu aktualisieren, dass unterstützte Protokolle oder Chiffren verwendet werden und das gewünschte Sicherheitsniveau erreicht wird:
- Eine Application Load Balancer-Sicherheitsrichtlinie aktualisieren
- Eine Network Load Balancer-Sicherheitsrichtlinie aktualisieren
- Eine Classic Load Balancer-Sicherheitsrichtlinie aktualisieren
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 24 Tagen
- AWS OFFICIALAktualisiert vor 2 Jahren