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
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
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
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".
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"