Zum Inhalt springen
ecdsa.com
OpenSSL (client side)OpenSSL-CLI

Fehlermeldung

SSL routines:ssl3_read_bytes:tlsv1 alert protocol version

Auch ausgegeben als

  • error:0A00042E:SSL routines::tlsv1 alert protocol version
  • SSL alert number 70

OpenSSL 3.0 und 3.5 geben beide „error:0A00042E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:<source>:SSL alert number 70“ aus; OpenSSL 1.1.1 verwendete den Code 1409442E. Clients auf OpenSSL-Basis (curl, Python, Ruby, PHP) zeigen denselben Text als Grund.

OpenSSL (client side) — TLS alert 70 (protocol_version) received from the server

Was der Fehler bedeutet

Der Client hat vom Server den TLS-Alert 70 (protocol_version) erhalten: Keine der Protokollversionen, die der Client angeboten hat, ist für den Server akzeptabel. „tlsv1“ ist nur die Sammelbezeichnung, die OpenSSL für die seit TLS 1.0 definierten Alerts verwendet. In der Praxis ist der Server auf TLS 1.0/1.1 beschränkt, während der Client 1.2 und 1.3 anbietet, oder der Client wurde auf Versionen beschränkt, die der Server deaktiviert hat.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Vom Server akzeptierte Versionen ermitteln

    Probiere jede Version explizit aus (Sicherheitsniveau 0 erlaubt die auf SHA-1 basierenden Handshakes von TLS 1.0/1.1 nur für diesen Test).

    bash
    for v in tls1 tls1_1 tls1_2 tls1_3; do
      printf '%-7s ' "$v"
      echo | openssl s_client -connect legacy.example.com:443 -servername legacy.example.com -"$v" \
        -cipher 'DEFAULT:@SECLEVEL=0' >/dev/null 2>&1 && echo accepted || echo refused
    done
  2. 2.

    TLS 1.2 und 1.3 auf dem Server aktivieren

    Aktualisiere die Protokolleinstellungen des Servers (und seine TLS-Bibliothek, falls sie älter als TLS 1.2 ist).

    text
    # nginx
    ssl_protocols TLSv1.2 TLSv1.3;
    # Apache httpd
    SSLProtocol -all +TLSv1.2 +TLSv1.3

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen