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サーバーの起動時にこれを提供します)。
自己署名証明書を生成している場合は、次のように1つのコマンドでキーと証明書の両方を実行できます。
openssl req -nodes -new -x509 -keyout server.key -out server.cert
ああ、そして@MadHatterが-des3
フラグの省略について 彼の答え で言ったこと。
-des3
フラグは、servers.key.newを暗号化するためにopensslに指示します(偶然にも、まったく新しいキーではありません-これは、パスフレーズが変更または削除されている場合のみ、server.keyとまったく同じです)。
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
の暗号化は不要です!")。
使用 -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]"
Opensslでもう一度実行します
最初にパスフレーズでキーを生成します
次にopenssl rsa -in server.key -out server.key
次のコマンドを使用して、パスワードなしの秘密鍵ファイルをNO encryptionで生成します。最後のパラメーターは、秘密鍵のサイズです。
openssl genrsa -out my-passless-private.key 4096
「-nodes」を「openssl req」に追加すると、「openssl req」コマンドから暗号化されていない(パスフレーズなし)秘密鍵を生成できます