CSR con solo chiave pubblica con openssl

3

Quindi ho fatto le mie ricerche e non ho trovato nulla di abbastanza specifico per il mio problema. Come afferma il titolo della domanda, voglio fare un CSR con solo la chiave pubblica. Quello che sono stato in grado di fare è generare una CSR con le informazioni che ho scelto insieme a una nuova coppia di chiavi. E quindi utilizzare qualcosa di simile per costringerlo a utilizzare la chiave pubblica che voglio quando si effettua il certificato.

openssl x509 -req -in mycsr.pem -force_pubkey mypubkey.pem -CA dumyCA.pem -CAkey -dumyCA.pem -out mycert.pem

Dopo questo prendo il certificato emesso e cambio i suoi attributi per associarlo a una chiave privata. Tutto funziona bene. Il problema è che se dovessi prendere il suddetto csr e inviarlo a una CA, mi restituirebbero un certificato che utilizzava la chiave generata quando viene generato il csr. Quindi la mia domanda.

EDIT: Quindi ho una coppia di chiavi, ma la mia chiave privata è su un modulo HSM che non ha capacità di esportazione. Sono in grado di ottenere un file .pem della chiave pubblica. E dopo aver fatto il certificato con il comando che ho dato, lo eseguo attraverso un programma che lo associa alla chiave privata. Quindi la mia nuova domanda è, usando API openssl sarò in grado di creare il mio csr? Quindi posso firmarlo con la chiave privata senza averlo in un file e associarlo con la chiave pubblica che ho.

    
posta embasa 03.03.2016 - 10:09
fonte

1 risposta

3

La richiesta di firma del certificato, come generata dal comando:

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

Includerà la tua chiave pubblica. Questo è obbligatorio secondo il processo PKI. Il CSR, contenente le informazioni sull'entità e la chiave pubblica, viene inviato a qualsiasi autorità di certificazione che ti piace per una richiesta di certificato (da cui il nome CSR). Il CSR è firmato usando la chiave privata che è collegata alla chiave pubblica incorporata.

La CA, dopo aver valutato la tua identità, basterà firmare il CSR per creare un certificato valido per te. Questo è il certificato che invierai ai clienti, ad es. quando si collegano al tuo sito web.

La chiave privata nel tuo file privateKey.key verrà utilizzata dal tuo server web per decrittografare i messaggi inviati ad essa. Questa chiave privata non dovrebbe mai, mai lasciare il server.

Per ulteriori informazioni, puoi consultare i comandi openSSL più comuni .

    
risposta data 03.03.2016 - 10:39
fonte

Leggi altre domande sui tag