Generazione del certificato ECDSA e della chiave privata in un unico passaggio

12

Simile a come può essere fatto facilmente per RSA:

openssl req -x509 -nodes -newkey rsa:2048 -rand /dev/urandom -keyout example.key -out example.crt -days 365

Vorrei generare un certificato / chiave ECDSA in un unico passaggio. Ho provato:

openssl req -x509 -nodes -newkey ec:secp384r1 -keyout ecdsa.pem -out mycert.crt -days 30

Restituisce l'errore seguente

Can't open parameter file secp384r1.

Sto cercando di specificare la curva da usare. Se esiste un file chiave, puoi specificarlo con ec:example-ecdsa.pem e funzionerà.

Forse qualcosa del genere potrebbe funzionare con il tweaking:

openssl req -new -x509 -nodes -newkey ec:$(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650
    
posta Python Novice 15.05.2014 - 17:48
fonte

4 risposte

16

Questo sembrava essere il comando che vuoi:

openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650
    
risposta data 12.07.2015 - 12:19
fonte
6
openssl ecparam -name secp521r1 -genkey -param_enc explicit -out private-key.pem
openssl req -new -x509 -key private-key.pem -out server.pem -days 730

Creazione del certificato SSL ECDSA autofirmato usando OpenSSL funziona per me.

Puoi testare i certificati dopo averli generati come segue.

openssl ecparam -in private-key.pem -text -noout
    
risposta data 17.05.2014 - 13:22
fonte
4

Usa -pkeyopt

openssl req -x509 -nodes -newkey ec -pkeyopt ec_paramgen_curve:secp384r1 -keyout ecdsa.pem -out mycert.crt -days 30

Secondo il req man:

OPTIONS
       -pkeyopt opt:value
           set the public key algorithm option opt to value. The precise set of options supported depends on the public key algorithm used and its implementation. See KEY GENERATION OPTIONS in the genpkey manual page for more details.

Quindi, guarda man genpkey:

EC PARAMETER GENERATION OPTIONS
       The EC parameter generation options below can also be supplied as EC key generation options. This can (for example) generate a key from a named curve without the need to use an explicit parameter file.

       ec_paramgen_curve:curve
           the EC curve to use. OpenSSL supports NIST curve names such as "P-256".

       ec_param_enc:encoding
           the encoding to use for parameters. The "encoding" parameter must be either "named_curve" or "explicit".
    
risposta data 30.07.2018 - 17:31
fonte
0

Un liner per creare la chiave secp384r1 ECC + CSR con nomi oggetto alternativi:

export FQDN="www.example.com" ; export FQDNA="DNS.1=$FQDN, DNS.2=example.com, DNS.3=es.example.com, DNS.4=it.example.com, DNS.5=pt.example.com, DNS.6=de.example.com, DNS.7=fr.example.com" ; openssl req -new -nodes -newkey ec:<(openssl ecparam -name secp384r1 -rand /dev/urandom) -keyout $FQDN.secp384r1.key -out $FQDN.secp384r1.csr -subj "/C=US/ST=Minnesota/L=Minneapolis/O=Me and my Feast/OU=IT Dept./CN=$FQDN/subjectAltName=$FQDNA"
    
risposta data 25.01.2017 - 23:49
fonte

Leggi altre domande sui tag