web-dev-qa-db-ja.com

パスフレーズなしでRSA鍵を生成することは可能ですか?

RailsプロジェクトのApache2とPassengerを使用しています。テスト目的で自己署名 SSL証明書 を作成したいと思います。

Sudo openssl rsa -des3 -in server.key -out server.key.new

上記のコマンドを入力すると、

writing RSA key
Enter PEM pass phrase:

パスフレーズを入力しないと、以下のエラーが発生します

unable to write key
3079317228:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:Yo
u must type in 4 to 1024 characters
3079317228:error:0906406D:PEM routines:PEM_def_callback:problems getting passwor
d:pem_lib.c:111:
3079317228:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:382

pass phraseスクリプトが人間の介入なしにHTTPサーバーを起動する方法がわからないため、/etc/init.d/httpdを指定せずにRSAキーを生成することは可能ですか? Apache HTTPサーバーの起動時にこれを提供します)。

94
diya

自己署名証明書を生成している場合は、次のように1つのコマンドでキーと証明書の両方を実行できます。

openssl req  -nodes -new -x509  -keyout server.key -out server.cert

ああ、そして@MadHatterが-des3フラグの省略について 彼の答え で言ったこと。

95
Tom H

-des3フラグは、servers.key.newを暗号化するためにopensslに指示します(偶然にも、まったく新しいキーではありません-これは、パスフレーズが変更または削除されている場合のみ、server.keyとまったく同じです)。

39
MadHatter

answer by @Tom H からのopenssl reqコマンドは、server.cert inclで自己署名証明書を作成するのに適切です。 server.keyのパスワードなしのRSA秘密鍵:

openssl req -nodes -new -x509 -keyout server.key -out server.cert

これがどのように機能するかです。answer by @MadHatter のように-des3を省略しても、この場合は十分ではありませんパスフレーズなしで秘密鍵を作成します。 @MadHatterおよびopenssl rsaによって参照されるopenssl genrsa( "秘密鍵の変換")コマンドでは、これはこの目的に十分です秘密鍵」)コマンド。ここでのopenssl reqコマンド用ではありません。さらに、-nodesが必要です( "DES server.keyの暗号化は不要です!")。

23
tanius

使用 -nodesパラメータ。このオプションが指定されている場合、秘密鍵は暗号化されません。例:

openssl \
    req \
    -nodes \
    -newkey rsa:2048 \
    -keyout www.example.com.key \
    -out www.example.com.csr \
    -subj "/C=DE/ST=NRW/L=Berlin/O=My Inc/OU=DevOps/CN=www.example.com/[email protected]"
20
panticz.de

Opensslでもう一度実行します

最初にパスフレーズでキーを生成します

次にopenssl rsa -in server.key -out server.key

8
darethas

次のコマンドを使用して、パスワードなしの秘密鍵ファイルをNO encryptionで生成します。最後のパラメーターは、秘密鍵のサイズです。

openssl genrsa -out my-passless-private.key 4096
1
nix

「-nodes」を「openssl req」に追加すると、「openssl req」コマンドから暗号化されていない(パスフレーズなし)秘密鍵を生成できます

0
David Roe