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.