Zum Inhalt springen
ecdsa.com
OpenSSL CLI (openssl pkey / ec / rsa / dgst)OpenSSL-CLI

Fehlermeldung

unable to load Public Key

Wortlaut von OpenSSL 1.1.x; immer noch die meistzitierte Form. OpenSSL 3.0 gibt „Could not read key of Public Key from cert.pem“ aus, OpenSSL 3.5 und neuer „Could not find private key of Public Key from cert.pem“ (reproduziert mit 3.0.2 und 3.6.4) – derselbe Fehler, neue Formulierung.

Was der Fehler bedeutet

Der openssl-Befehl hat versucht, aus der angegebenen Datei einen öffentlichen Schlüssel zu lesen, und nichts gefunden, das er als solchen erkennt. Die Datei existiert – das Problem ist ihr Inhalt: ein anderer Objekttyp (Zertifikat, privater Schlüssel, SSH-Schlüssel), die falsche Kodierung oder gar kein Schlüssel.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Schlüssel aus einem Zertifikat extrahieren

    Ein einziger Befehl erzeugt das PEM mit dem öffentlichen Schlüssel im SPKI-Format, das Befehle mit -pubin erwarten.

    bash
    openssl x509 -in cert.pem -pubkey -noout > pubkey.pem
    openssl pkey -pubin -in pubkey.pem -noout -text   # now loads
  2. 2.

    OpenSSH-Schlüssel in PEM konvertieren

    ssh-keygen exportiert einen Eintrag im Format von authorized_keys als Standard-PEM mit BEGIN PUBLIC KEY (SPKI) – ssh-keygen nennt dieses Format PKCS8.

    bash
    ssh-keygen -f id_ecdsa.pub -e -m pkcs8 > pubkey.pem
  3. 3.

    Öffentliche Hälfte aus einem privaten Schlüssel ableiten

    Ist die Datei tatsächlich der private Schlüssel, verwende kein -pubin – leite den öffentlichen Schlüssel ab.

    bash
    openssl pkey -in private.pem -pubout -out pubkey.pem

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen