Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Warum erhalte ich einen Client-SSL/TLS-Verhandlungsfehler, wenn ich eine Verbindung zu meinem Load Balancer herzustellen?
Ich möchte einen SSL/TLS-Verhandlungsfehler beheben, der auftritt, wenn ich eine Verbindung zu meinem Elastic Load Balancer (ELB) herstelle.
Kurzbeschreibung
Dieser Fehler tritt auf, wenn der Client keine sichere Verbindung mit dem Load Balancer aushandeln kann. Das Problem wird in der Regel durch nicht unterstützte Chiffren oder Protokollversionen verursacht.
Um eine TLS-Verbindung herzustellen, stelle sicher, dass der Client mindestens eine Chiffre und ein Protokoll unterstützt, die in der Sicherheitsrichtlinie des Load Balancers definiert sind.
Lösung
**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.
Identifizieren der Sicherheitsrichtlinie des Load Balancers
Gehe wie folgt vor, um die Sicherheitsrichtlinie des Load Balancers zu ermitteln:
- Öffne die Amazon Elastic Compute Cloud (Amazon EC2)-Konsole.
- Wähle im Navigationsbereich unter Load Balancing die Option Load Balancer.
- Wähle den Load Balancer aus und dann wähle Listeners.
- Sieh dir die Sicherheitsrichtlinie an.
Für Application Load Balancer und Network Load Balancer findest du die Sicherheitsrichtlinie in der Spalte Security policy.
Wähle für Classic Load Balancers Ändern in der Spalte Chiffre, um die Sicherheitsrichtlinie anzuzeigen.
Um die AWS-CLI zu verwenden, führe einen der folgenden Befehle aus:
- Führe für Application Load Balancer und Network Load Balancer den Befehl describe-listeners aus.
- Führe für Classic Load Balancers den Befehl describe-load-balancers aus.
Unterstützte Protokolle und Chiffren ermitteln
Classic Load Balancer unterstützen benutzerdefinierte Sicherheitsrichtlinien. Application Load Balancer und Network Load Balancer unterstützen jedoch keine benutzerdefinierten Sicherheitsrichtlinien.
Weitere Informationen zu Sicherheitsrichtlinien findest du in der folgenden Dokumentation:
- Sicherheitsrichtlinien für den Application Load Balancer
- Sicherheitsrichtlinien für den Network Load Balancer
- Vordefinierte SSL-Sicherheitsrichtlinien für Classic Load Balancer
(Optional) Die Sicherheitsrichtlinie des Load Balancers testen
Teste die Protokolle und Chiffren, die von der Sicherheitsrichtlinie des Load Balancers unterstützt werden. Verwende ein Open-Source-Befehlszeilentool wie sslscan oder openssl.
Weitere Informationen findest du unter sslscan auf der GitHub-Website.
Befehl sslscan verwenden
Installiere den Befehl sslscan auf einer Amazon Linux EC2-Instance oder vom lokalen System aus und führe ihn aus. Stelle sicher, dass der Load Balancer TLS-Verbindungen von der Quell-IP-Adresse akzeptiert.
Gehe wie folgt vor, um sslscan auf einer Amazon Linux EC2-Instance zu verwenden:
-
Aktiviere das Repository Extra Packages for Enterprise Linux (EPEL).
-
Führe den folgenden Befehl aus:
sudo yum install sslscan -
Um den Load Balancer nach unterstützten Chiffren zu durchsuchen, führe den folgenden Befehl aus. Ersetze example.com durch deinen Domain-Namen:
[ec2-user@ ~]$ sslscan --show-ciphers example.comHinweis: Amazon Linux 2023 (AL2023) unterstützt EPEL nicht.
Befehl openssl verwenden
Um die Sicherheitsrichtlinie des Load Balancers zu testen, kannst du auch den Befehl openssl verwenden. Führe den Befehl openssl auf einer Amazon Linux EC2-Instance oder vom lokalen System aus.
Führe den folgenden Befehl aus, um die unterstützten Chiffren für eine bestimmte SSL/TLS-Version aufzulisten:
*$* openssl ciphers -v
Der folgende Befehl zeigt Chiffren, die von der TLS-Version TLS 1.2 unterstützt werden:
*$* openssl ciphers -V | grep "TLSv1.2"
Führe den Befehl s_client aus, um TLS-Versionen und Cipher Suites zu testen. Um die Stärke einer bestimmten Cipher-Suite zu ermitteln, verwende ein Website-Repository eines Dritten wie TLS Ciphersuite Search. Wenn du beispielsweise den folgenden Befehl ausgeführt hast, werden in der Ausgabe Chiffren für www.example.com angezeigt:
openssl s_client -connect example.com:443
Die Suite TLS_PSK_WITH_AES_128_CBC_SHA ist schwach. Wenn du die Suite gegen einen Server verwendest, dann erhältst du den folgenden Fehler:
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 ist stark. Wenn du die Suite gegen den Server verwendest, dann erhältst du 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)
Um die Version des TLS-Protokolls anzugeben, das in der Verbindung verwendet wird, führe den Befehl openssl aus. 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
(Optional) Die Verbindungsprotokolle für den Application Load Balancer und die Zugriffsprotokolle für den Network Load Balancer überprüfen
Wenn der Client HTTPS-Listener für den Application Load Balancer verbindet, verwende Verbindungsprotokolle, um das Protokoll und die Chiffre zu überprüfen. Das Protokoll und die für die Verbindung verwendete Chiffre befinden sich in den Feldern tls_protocol und tls_cipher. Wenn die TLS-Verhandlung fehlgeschlagen ist, wird das Feld tls_verify_status auf Failed:$error_code gesetzt, und die Felder tls_protocol und tls_cipher werden auf „-“ gesetzt.
Wenn der Client TLS-Listener für den Network Load Balancer verbindet, verwende Zugriffsprotokolle, um das Protokoll und die Chiffre zu überprüfen. Das für die Verbindung verwendete Protokoll und die Chiffre befinden sich in den Feldern tls_protocol_version und tls_cipher. Wenn die TLS-Aushandlung fehlgeschlagen ist, werden keine Zugriffsprotokolle aufgezeichnet.
Weitere Informationen findest du unter Verbindungsprotokolle für den Application Load Balancer und Zugriffsprotokolle für den Network Load Balancer.
Aktualisieren der Sicherheitsrichtlinie des Load Balancers
Um unterstützte Protokolle oder Chiffren zur Erhöhung der Sicherheit zu verwenden, aktualisiere die Sicherheitsrichtlinie des Load Balancers. Weitere Informationen zum Aktualisieren von Sicherheitsrichtlinien findest du in der folgenden Dokumentation:
- Informationen zu Application Load Balancers findest du unter Sicherheitsrichtlinie aktualisieren.
- Informationen zu Network Load Balancers finde unter Sicherheitsrichtlinie aktualisieren.
- Informationen zu Classic Load Balancers findest du unter Aktualisieren der SSL-Verhandlungskonfiguration mithilfe der Konsole.
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 3 Jahren