web-dev-qa-db-ja.com

1ステップでのECDSA証明書と秘密鍵の生成

RSAで簡単に実行できる方法と似ています。

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

ECDSA証明書/キーを1つのステップで生成したいのですが。私はもう試した:

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

以下のエラーを返します

パラメータファイルsecp384r1を開けません

使用する曲線を指定しようとしています。キーファイルが存在する場合は、ec:example-ecdsa.pemを使用して指定でき、機能します。

おそらく、次のようなものが微調整で機能します。

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

これはあなたが望むコマンドのようでした:

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

OpenSSLを使用した自己署名ECDSA SSL証明書の作成 は私のために働いています。

次のようにして、生成後に証明書をテストできます。

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

使用する -pkeyopt

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

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

それでは、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".
6
Jude

ECC secp384r1キー+代替サブジェクト名のCSRを作成する1つのライナー:

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