Genera CSR e chiave privata con password con OpenSSL

5

Sto utilizzando il seguente comando per generare un CSR insieme a una chiave privata utilizzando OpenSSL :

openssl req -new -subj "/CN=sample.myhost.com" -out newcsr.csr -nodes -sha512 -newkey rsa:2048

Genera due file:

  • newcsr.csr
  • privkey.pem

La chiave privata generata non ha password: come posso aggiungerne una durante il processo di generazione?

Nota: tieni presente che il mio obiettivo finale è generare un file p12 combinando il certificato fornito in base al CSR e alla chiave privata (protetta con una password).

    
posta vdenotaris 26.11.2015 - 11:31
fonte

2 risposte

12

Ditch "-nodes"

Lascia solo il parametro (scomodamente chiamato) -nodes (leggi: " No DES encryption") dal comando.

Usa OpenSSL "Pass Phrase arguments"

Se si desidera fornire una password per il file di output, sarà necessario il parametro (con nome errato) -passout .

Questo è un parametro multi-dimensionale e ti consente di leggere la password effettiva da un certo numero di fonti. Come file o da una variabile di ambiente. O direttamente dalla riga di comando (meno sicuro). Di seguito sono riportati alcuni esempi di questi usi.

(La manpage ufficiale elenca ancora più fonti di password nella sezione "Pass Phrase Arguments" ).

Esempio: password dalla riga di comando con "pass:"

$ openssl req -new -passout pass:"Pomegranate" -subj "/CN=sample.myhost.com" -out newcsr.csr -sha512 -newkey rsa:2048
Generating a 2048 bit RSA private key
................................................................................................................................+++
......................+++
writing new private key to 'privkey.pem'
-----


$ openssl rsa -in privkey.pem -passin pass:'Pomegranate' | head -n2
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAsSP5kLRPP8wPODrnvuAeeoqGMqTOvRULL423vv6+zjYhwPUi

Esempio: password da variabile con "env:"

$ export MYPASS='Elderberry'


$ openssl req -new -passout env:MYPASS -subj "/CN=sample.myhost.com" -out newcsr.csr -sha512 -newkey rsa:2048
Generating a 2048 bit RSA private key
............................+++
.....................+++
writing new private key to 'privkey.pem'
-----


$ openssl rsa -in privkey.pem -passin pass:'Elderberry' | head -n2
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAv0NnBnigPp+O9G4UXc0qSyeELdJJjTmnO9GEtE5GlPGoK7vW

Esempio: password da file con "file:"

$ echo "Farkleberry" > password.txt


$ openssl req -new -passout file:password.txt -subj "/CN=sample.myhost.com" -out newcsr.csr -sha512 -newkey rsa:2048
Generating a 2048 bit RSA private key
......................+++
...........+++
writing new private key to 'privkey.pem'
-----


$ openssl rsa -in privkey.pem -passin pass:'Farkleberry' | head -n2
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAsHICgYvqe4i9CIR5eQk38JJmuTaJQvyxPH9S+BahT5XWh88z
    
risposta data 26.11.2015 - 12:26
fonte
1

È possibile aggiornare la chiave con una password con il seguente comando:

openssl rsa -des3 -in server.key -out server.key.new

Quindi usa mv server.key.new server.key per sovrascrivere la vecchia chiave.

    
risposta data 26.11.2015 - 12:10
fonte

Leggi altre domande sui tag