OpenSSLで秘密鍵と公開鍵を生成するための次のコマンドがあります。
openssl genrsa –aes-128-cbc –out priv.pem –passout pass:[privateKeyPass] 2048
そして
openssl req –x509 –new –key priv.pem –passin pass:[privateKeyPass] -days 3650 –out cert.cer
...しかし、それらは機能していません。最初のコマンドで、次のエラーが発生します。
usage: genrsa [args] [numbits]
-des encrypt the generated key with DES in cbc mode
-des3 encrypt the generated key with DES in ede cbc mode (168 bit key)
-seed
encrypt PEM output with cbc seed
-aes128, -aes192, -aes256
encrypt PEM output with cbc aes
-camellia128, -camellia192, -camellia256
encrypt PEM output with cbc camellia
-out file output the key to 'file
-passout arg output file pass phrase source
-f4 use F4 (0x10001) for the E value
-3 use 3 for the E value
-engine e use engine e, possibly a hardware device.
-Rand file:file:...
load the file (or the files in the directory) into
the random number generator
私は何が間違っているのですか?
編集:私は最初のコマンドを解決しました:
openssl genrsa -aes128 -out privkey.pem 2048
しかし今、私は2番目でエラーが発生しています:
unknown option –x509
「genrsa」はRSAキーのみを生成します。
次に、「req」はそのキーを使用してx509スタイルの要求を行います。
RSAキーペアだけが必要な場合は、genrsaを使用してください。
キーペアと署名されたx509リクエストが必要な場合は、「genrsa」を使用してから「req」を使用します。
オプションで、「req」はそのキーを生成することもできます(つまり、「genrsa」コマンド(およびgendh)をカプセル化します。
そう:
openssl genrsa -aes128 -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem
ほぼ同等です
openssl req -new -x509 -keyout privkey.pem -newkey rsa:2048
「genrsa」とは異なり、「req」では、暗号化としてaes128を指定することはできません。
したがって、多くのエンタープライズ設定では、適用されるキー暗号化を十分に制御するために、2つのステップでそれを行います。
出力からわかるように、間違ったアルゴリズムを選択しています。 -aes128
の代わりに-aes-128-cbc
を渡すべきではありませんか?
マニュアルから、-aes-128-cbc
はopenssl enc
の適切なパラメータであると思いますが、genrsa
で機能するかどうかはわかりません。