Generación de certificado ECDSA y clave privada en un solo paso

11

Similar a cómo se puede hacer fácilmente para RSA:

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

Me gustaría generar un certificado / clave ECDSA en un solo paso. Lo he intentado:

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

Devuelve el siguiente error

  

No se puede abrir el archivo de parámetros secp384r1 .

Estoy tratando de especificar la curva a utilizar. Si existe un archivo de clave, entonces puede especificarlo con ec:example-ecdsa.pem y funcionará.

Posiblemente algo como esto podría funcionar con ajustes:

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

4 respuestas

15

Este parece ser el comando que deseas:

openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650
    
respondido por el user23013 12.07.2015 - 12:19
fuente
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
. OpenSSL está funcionando para mí.

Puede probar los certificados después de generarlos de la siguiente manera.

openssl ecparam -in private-key.pem -text -noout
    
respondido por el Kasun 17.05.2014 - 13:22
fuente
4

Usa -pkeyopt

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

Según los requisitos del hombre:

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.

Entonces, mirando al hombre 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".
    
respondido por el Jude 30.07.2018 - 17:31
fuente
0

Una línea para crear la clave ECC secp384r1 + CSR con nombres de sujeto alternativos:

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"
    
respondido por el Viktor Zhuromskyy 25.01.2017 - 23:49
fuente

Lea otras preguntas en las etiquetas