Aller au contenu
ecdsa.com
OpenSSL CLI (openssl pkey / ec / rsa / dgst)CLI OpenSSL

Message d’erreur

unable to load Public Key

Formulation d’OpenSSL 1.1.x, qui reste la forme la plus citée. OpenSSL 3.0 affiche « Could not read key of Public Key from cert.pem », OpenSSL 3.5 et les versions ultérieures « Could not find private key of Public Key from cert.pem » (reproduit sur 3.0.2 et 3.6.4) : même échec, nouvelle formulation.

Ce que cela signifie

La commande openssl a tenté de lire une clé publique dans le fichier indiqué et n’y a rien trouvé qu’elle reconnaisse comme telle. Le fichier existe ; c’est son contenu qui pose problème : un autre type d’objet (certificat, clé privée, clé SSH), un mauvais encodage, ou pas de clé du tout.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Extraire la clé d’un certificat

    Une seule commande produit le PEM de clé publique SPKI qu’attendent les commandes utilisant -pubin.

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

    Convertir une clé OpenSSH en PEM

    ssh-keygen exporte une entrée au format authorized_keys en PEM de clé publique standard BEGIN PUBLIC KEY (SPKI) ; ssh-keygen appelle ce format PKCS8.

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

    Dériver la moitié publique d’une clé privée

    Si le fichier est en réalité la clé privée, n’utilisez pas -pubin : dérivez la clé publique.

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

Erreurs associées

Parcourir toute la base de données des erreurs de signature