web-dev-qa-db-fra.com

Génération d'un certificat ECDSA et d'une clé privée en une seule étape

Similaire à la façon dont cela peut être facilement fait pour RSA:

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

Je voudrais générer un certificat/clé ECDSA en une seule étape. J'ai essayé:

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

Renvoie l'erreur ci-dessous

Impossible d'ouvrir le fichier de paramètres secp384r1.

J'essaie de spécifier la courbe à utiliser. Si un fichier de clé existe, vous pouvez le spécifier avec ec:example-ecdsa.pem et cela fonctionnera.

Peut-être que quelque chose comme ça pourrait fonctionner avec des ajustements:

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

Cela semblait être la commande que vous vouliez:

openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650
20
user23013
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

Création d'un certificat SSL ECDSA auto-signé à l'aide d'OpenSSL fonctionne pour moi.

Vous pouvez tester les certificats après les avoir générés comme suit.

openssl ecparam -in private-key.pem -text -noout
6
Kasun

Utilisation -pkeyopt

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

Selon l'homme req:

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.

Alors, en regardant l'homme 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".
6
Jude

Une doublure pour créer la clé ECC secp384r1 + CSR avec des noms de sujet alternatifs:

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"
0
Viktor Zhuromskyy