Zum Inhalt springen
ecdsa.com
rustls (via reqwest, ureq, tonic)Rust

Fehlermeldung

received corrupt message of type InvalidContentType

reqwest zeigt die Meldung am Ende von „error sending request for url (…): client error (Connect): received corrupt message of type InvalidContentType“, ureq als „io: received corrupt message of type InvalidContentType“. Clients auf Basis von OpenSSL melden dieselbe Situation als „wrong version number“.

rustls (via reqwest, ureq, tonic) — rustls::Error::InvalidMessage(InvalidContentType): the peer's reply is not TLS

Was der Fehler bedeutet

rustls hat das erste Byte der Antwort des Servers als Content Type eines TLS-Records gelesen und einen Wert gefunden, den kein TLS-Record haben kann. Die Gegenstelle spricht kein TLS: typischerweise ein HTTP-Server, der auf einem per https:// angesprochenen Port mit „HTTP/1.1 …“ antwortet, ein gRPC-Server, der im Klartext kommuniziert, oder ein Proxy, der reines HTTP erwartet.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Herausfinden, was der Port spricht

    Antwortet reines HTTP, verwende http:// oder den TLS-Port des Servers.

    bash
    curl -si http://127.0.0.1:8080/ | head -1      # plain HTTP answers -> use http:// or the TLS port
  2. 2.

    Schema des Endpunkts an den Server anpassen

    Verwende http://-Endpunkte für Klartext-gRPC-Server in vertrauenswürdigen Netzwerken und andernfalls https:// mit TLS-Konfiguration.

    rust
    // tonic: use an http:// endpoint for plaintext servers, https:// + TLS config for TLS servers
    let channel = tonic::transport::Channel::from_static("http://127.0.0.1:50051").connect().await?;

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen