Crea certificato senza chiave privata con OpenSSL

4

So che OpenSSL richiede che il CSR sia firmato per un motivo: per assicurare la validità della CSR, il fatto che sia stato richiesto dal proprietario effettivo della chiave privata della chiave pubblica collegata. Va assolutamente bene, ma in teoria una CA può assicurare la validità in altri modi, specialmente quando la CSR non è mai in transito. Questo è il caso dei certificati autofirmati, ad es. con certificati di società localmente emessi e usati. Nel mio caso vorrei creare certificati senza le chiavi private perché sono generati su smart card e non possono essere esportati mai. E no, le carte non generano CSR durante la generazione delle chiavi.

Non ho trovato alcuna opzione in OpenSSL per creare un certificato dall'unica chiave pubblica. Nonostante in teoria è molto ben possibile.

Esiste un'opzione in OpenSSL per farlo? Qualche altro mezzo? Devo creare i certificati X509.

Grazie

    
posta djozsef 22.02.2015 - 17:02
fonte

2 risposte

5

Come suggerito da AJ Henderson , la soluzione perfetta sarebbe quella di far firmare al CSR la carta OpenPGP. È risultato possibile con lo strumento CLI gpgsm . Damien Goutte-Gattat dalla mailing list di GnuPG-utente ha risposto alla domanda:

Is there any way to create an X509 CSR signed with the private key stored on the card?

     

Sì, puoi utilizzare lo strumento gpgsm (1) per questo.

     

Assicurati che la tua carta sia nel lettore di schede, quindi:

 $ gpgsm --armor --output mycsr.pem --gen-key
     

Ti verrà richiesto di selezionare il tipo di chiave che desideri, scegliere   " Existing key from card " (assicurati che la tua carta sia nel lettore).   Quindi selezionare quale dei tasti della carta si desidera utilizzare (la chiave di firma,   la chiave di crittografia o la chiave di autenticazione) e l'uso previsto   del futuro certificato.

     

Al termine della procedura, ti verrà richiesto il PIN in ordine   per firmare il CSR.

     

La documentazione di Scute ha un esempio completo (utilizza   gpgsm-gencert.sh, uno script di supporto deprecato, anziché il precedente   comando, ma la procedura è quasi la stessa).

Quindi non c'è bisogno di eludere la CSR, puoi creare un certificato X509 valido con GnuPG.

    
risposta data 23.02.2015 - 18:00
fonte
2

Sì, puoi eludere questo fatto.

  1. crea un falso csr con QUALSIASI chiave privata
  2. la CA può utilizzare il flag force_pubkey (come menzionato qui: link ) per firmarlo anche se la chiave pubblica fornita non è quella che appartiene alla chiave privata che hai usato durante la generazione del csr.
  3. hai il tuo X509 con la tua chiave pubblica desiderata
risposta data 04.05.2018 - 12:57
fonte

Leggi altre domande sui tag