Sto cercando di generare una coppia di chiavi pubblica-privata e di convertire la chiave pubblica in un certificato che può essere aggiunto nel mio truststore.

Per generare & chiave pubblica privata: openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem

Ora io sto provando a convertirlo in un certificato:

openssl x509 -outform der -in public_key.pem -out public.cer 

ma ricevo un errore:

7962:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.30.2/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE 

Tutti i tutorial mostrano che devo convertire pem in crt prima di aggiungerlo a un truststore.

Answer

Non puoi ” convertire “una chiave pubblica in un certificato. Un certificato include la chiave pubblica ma include anche più informazioni come loggetto, lemittente, quando il certificato è valido, ecc. E un certificato è firmato dallemittente. Quindi ciò di cui avresti bisogno invece è creare una richiesta di firma del certificato (CSR) che include la chiave pubblica ma include anche tutte le informazioni aggiuntive. Questa CSR deve quindi essere firmata da unautorità di certificazione (CA) che quindi risulta nel certificato.

Per creare un semplice certificato autofirmato che non è considerato attendibile da alcun browser vedere Come creare un certificato autofirmato con openssl? .

Commenti

  • Quindi, in questo esempio: openssl req -x509 -newkey rsa: 4096 -keyout key.pem -out cert.pem -days 365 key.pem conterrà sia la chiave privata che quella pubblica?
  • @ user1692342: ' non sono sicuro di come la domanda nel commento sia correlata alla domanda originale. Ma: key.pem è la chiave privata che include la chiave pubblica e anche la chiave pubblica è inclusa in cert.pem.

Risposta

Non puoi convertire una chiave pubblica in un certificato.

I comandi originali non funzioneranno poiché il formato di file / codifica PEM prevede di contenere il testo del certificato crittografato come di seguito:

—– INIZIO CERTIFICATO —–

Dati del certificato qui

—– FINE CERTIFICATO —–

Quindi se visualizzi il file .PEM originale e vedi qualcosaltro (come BEGIN RSA …) allora non è corretto.

Ora, secondo il titolo del thread, stanno cercando di convertire un PEM in un formato di file CRT . Tieni presente che i certificati x509 possono essere in due codifiche: DER e PEM. Inoltre, PEM può essere allinterno di un formato .CRT, .CER e anche .PEM.

Pertanto, se vedi quellerrore, cè anche la possibilità che tu stia trattando un certificato con codifica DER come un certificato con codifica PEM. Puoi provare a vedere se è effettivamente codificato DER seguendo le istruzioni in questa pagina .

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *