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

Fehlermeldung

SSL routines:ssl_choose_client_version:unsupported protocol

Auch ausgegeben als

  • error:0A000102:SSL routines::unsupported protocol

Die OpenSSL-CLI gibt „<thread>:error:0A000102:SSL routines:ssl_choose_client_version:unsupported protocol:<source>“ aus; curl, Node.js und andere Anwendungen zeigen „error:0A000102:SSL routines::unsupported protocol“. OpenSSL 1.1.1 verwendete den Code 1425F102.

OpenSSL (client side) — SSL_R_UNSUPPORTED_PROTOCOL: the server chose a version the client does not allow

Was der Fehler bedeutet

Der Client hat TLS 1.2 und 1.3 angeboten, aber das ServerHello des Servers hat eine ältere Version gewählt (typischerweise TLS 1.0), die das OpenSSL des Clients nicht verwenden darf. Der Client bricht in ssl_choose_client_version ab. Alte TLS-Stacks ignorieren den vom Client angebotenen Bereich und antworten einfach mit ihrer eigenen Version; moderne Stacks würden stattdessen mit dem Alert protocol_version ablehnen.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Version des Servers bestätigen

    Erzwingst du für diesen einen Diagnosebefehl TLS 1.0 mit Sicherheitsniveau 0, siehst du, ob der Server nur die alte Version spricht.

    bash
    # Allowed only for this diagnostic command: which version does the server pick?
    echo | openssl s_client -connect legacy.example.com:443 -servername legacy.example.com \
      -tls1 -cipher 'DEFAULT:@SECLEVEL=0' -brief 2>&1 | grep -E 'Protocol version|error'
  2. 2.

    TLS 1.2 und 1.3 auf dem Server aktivieren

    Ein Upgrade des Servers (oder ein moderner TLS-Terminator davor) ist die einzige dauerhafte Lösung.

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

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen