Zum Inhalt springen
ecdsa.com
Java (JSSE)Java

Fehlermeldung

javax.net.ssl.SSLException: Unsupported or unrecognized SSL message

Auch ausgegeben als

  • Unsupported or unrecognized SSL message

JDK 25 gibt denselben Text auf Client-Seite und auf einem JSSE-Server aus, der reines HTTP empfängt (beides geprüft). Sendet die Gegenseite nichts und schließt die Verbindung, meldet Java stattdessen „Remote host terminated the handshake“.

Java (JSSE) — the peer's reply is not a TLS record

Was der Fehler bedeutet

JSSE hat einen TLS-Record erwartet und Bytes erhalten, die es nicht als solchen parsen kann, meist den Text einer HTTP-Antwort von einem reinen HTTP-Server. Auf Client-Seite wurde https:// gegen einen Port verwendet, der kein TLS spricht; auf Server-Seite (einem TLS-Listener von Tomcat oder Netty) hat ein Client reines HTTP an den TLS-Port gesendet. Das Zertifikat spielt hier keine Rolle.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Prüfen, was der Port spricht

    Antwortet der Port mit reinem HTTP, verwende http:// oder den richtigen TLS-Port.

    bash
    curl -si http://api.example.com:8080/ | head -1      # an HTTP status line -> not TLS
    openssl s_client -connect api.example.com:8443 -brief </dev/null
  2. 2.

    Mail- und Verzeichnis-Clients: TLS-Modus und Port aufeinander abstimmen

    Verwende STARTTLS auf dem Submission-Port (587) und implizites TLS nur auf 465 (oder ldaps:// auf 636).

    text
    # Mail (Jakarta Mail): STARTTLS on 587, implicit TLS on 465
    mail.smtp.port=587
    mail.smtp.starttls.enable=true
    mail.smtp.starttls.required=true
    # (mail.smtp.ssl.enable=true belongs to port 465 only)
  3. 3.

    Eigener Server: HTTP- und HTTPS-Ports trennen

    Richte Clients und Health Checks auf https:// aus oder stelle einen reinen HTTP-Connector bereit, der auf den TLS-Port weiterleitet.

    text
    # Spring Boot server logging this for incoming requests: plain HTTP sent to the TLS port.
    # Use https:// on server.port, or add a separate HTTP connector that redirects to HTTPS.

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen