La chiave privata è il segreto che ti identifica, qualsiasi firma o verifica della tua identità specifica richiede la chiave privata. Quindi qualsiasi operazione che genererà qualcosa che si intende derivare dalla tua identità lo richiederà.
Inoltre, non stai creando un certificato qui, stai creando una richiesta di firma del certificato, qualcosa che avresti consegnato a un'altra parte a chi avrebbe poi generato il certificato per concederti l'accesso.
se vuoi creare un certificato x509 autofirmato devi aggiungere il parametro -x509, qualcosa del tipo:
openssl req -x509 -nodes -days 5000 -newkey rsa:2048 -keyout mypem.key -out mycert.crt
- dove i giorni sono quanto tempo il certificato è valido (5000 è efficace
indefinito)
I nodi - salta la password aziendale (salta i test, ometti per qualsiasi cosa reale)
- e anche l'output della chiave e del certificato per un uso successivo
E @bartonjs è corretto, la chiave privata per la chiave pubblica è possibile, la chiave pubblica per la chiave privata non lo è. Ecco perché puoi distribuire la chiave pubblica e nessuno può usarla per impersonarti. La chiave privata deve essere sempre segreta.
Se si prevede di agire come cliente che desidera ottenere l'accesso al server e anche al server che concede la richiesta, sarà necessario innanzitutto impostare l'autorità di certificazione sul server e i certificati del server.
Somone on stack overflow ha già un'ottima risposta su questo:
Ma il juiste base è, tu hai configurato la CA e il crt del server, quindi fai qualcosa del genere sul server:
openssl x509 -req -days 30 -in request.csr -CA ca.crt -CAcreateserial -CAkey ca.key -out signedrequest.crt
restituisci "signedrequest.crt" alla persona che lo ha richiesto.
Ho dimenticato di menzionare, sbarazzarsi di -nodes nel mio comando qui sopra, salta la procedura della password. Buono per i test, Bad per la sicurezza. Solo FYI.