Loading

Fehlerbehebung bei javax.net.ssl.SSLException: Empfangene schwerwiegende Benachrichtigung: Handshake_failure

Veröffentlichungsdatum: Oct 16, 2024
Lösung

SYMPTOM

Beim Versuch, einen SSL-Endpunkt mit HTTP Requester unter Verwendung des TLS-Kontexts zu nutzen, wird folgender Fehler angezeigt: 

Root Exception stack trace: (Root-Exception Stapelverfolgung:)javax.net.ssl.SSLException: Received fatal alert: handshake_failure (Empfangene schwerwiegende Benachrichtigung: Handshake_failure)	at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)	at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1647)	at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1615)

 

URSACHE

Wenn diese Art von Fehler eintritt, weist das auf ein Problem hin, das beim Durchführen des SSL-Handshake aufgetreten ist. Dies liegt in der Regel daran, dass das vom Client vorgeschlagene Protokoll und/oder die Verschlüsselungssuites nicht von dem Dienst unterstützt werden, den Sie nutzen möchten.
Dies kann durch Aktivieren der SSL-Debug-Funktion überprüft werden. Hier finden Sie weitere Informationen zum Aktivieren der SSL-Debug-Funktion: Aktivieren der SSL-Debug-Protokollierung in MuleSoft-Produkten
Im SSL-Debug-Protokoll sehen Sie, dass der Client ClientHello mit der TLS-Version (im TLSv1.2-Beispiel) mit den unterstützten Verschlüsselungssuites sendet und Sie nie die ServerHello-Anzeige der unterstützten Verschlüsselungssuites empfangen. 

*** ClientHello, TLSv1.2RandomCookie:  GMT: 1540703219 Byte = { 236, 187, 154, 87, 41, 72, 226, 59, 44, 178, 16, 175, 159, 193, 47, 58, 245, 244, 240, 145, 135, 108, 196, 71, 237, 58, 231, 0 }Session ID:  {}Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA]Compression Methods:  { 0 }

 

 

LÖSUNG

Überprüfen Sie, ob der Remote-Dienst, den Sie nutzen möchten, dasselbe Protokoll und mindestens eine der in der ClientHello-Nachricht aufgeführten Verschlüsselungssuites unterstützt. 
Dafür können Sie einige der folgenden Tools verwenden: 

Sie können mithilfe von openssl eine Verbindung zu diesem Server herstellen, um festzustellen, welche TLS-Version Folgendes unterstützt: 

openssl s_client -connect : -tls1_2 
openssl s_client -connect : -tls1_1 
openssl s_client -connect : -tls1 


Alternativ können Sie den cURL-Befehl wie folgt verwenden: 

curl -vvvv -k https://:


Sie können auch das Tool nmap mit dem folgenden Skript verwenden, um die unterstützten Protokoll- und Verschlüsselungssuites aufzulisten:

https://nmap.org/nsedoc/scripts/ssl-enum-ciphers.html



Nachdem Sie die vom Dienst unterstützten Protokoll- und Verschlüsselungssuites identifiziert haben, können Sie durch die TLS-Konfiguration die von dem HTTP-Requester unterstützten Elemente ändern, sodass Sie eine Verbindung mit dem Dienst herstellen können. 

Weitere Informationen zur TLS-Konfiguration in Mule 3 

https://docs.mulesoft.com/mule-runtime/3.9/tls-configuration#protocol-cipher-suite-behavior

https://docs.mulesoft.com/mule-runtime/latest/tls-configuration#optional-attributes-of-the-tls-context-element

Weitere Informationen zur TLS-Konfiguration in Mule 4 

https://docs.mulesoft.com/mule-runtime/latest/tls-configuration#optional-attributes-of-the-tls-context-element
https://docs.mulesoft.com/mule-runtime/latest/tls-configuration#optional-specify-protocols-and-cipher-suites
https://docs.mulesoft.com/mule-runtime/latest/tls-configuration#example-adding-additional-cipher-suites-and-protocol-restrictions

 

Nummer des Knowledge-Artikels

001123418

 
Laden
Salesforce Help | Article