Opensslの-nodes
引数の目的は何ですか?
オプション-nodes
は英語の単語「ノード」ではなく、「no DES」です。引数として指定すると、OpenSSLは PKCS#12 ファイル内の秘密鍵を暗号化しないことを意味します。
秘密キーを暗号化するには、-nodes
を省略できます。キーは3DES-CBCで暗号化されます。キーを暗号化するために、OpenSSLはパスワードの入力を求め、そのパスワードを使用して、キー派生関数 EVP_BytesToKey を使用して暗号化キーを生成します。
OpenSSLのバージョンとコンパイルされたオプションに応じて、-nodes
の代わりにこれらのオプションを提供できる場合があります。
-des encrypt private keys with DES
-des3 encrypt private keys with triple DES (default)
-idea encrypt private keys with idea
-seed encrypt private keys with seed
-aes128, -aes192, -aes256
encrypt PEM output with cbc aes
-camellia128, -camellia192, -camellia256
encrypt PEM output with cbc camellia
最終的にライブラリレベルでは、OpenSSLは関数 PEM_write_bio_PrivateKey を選択した暗号化アルゴリズム(またはその欠如)で呼び出します。
編集: nginx v1.7.3に追加された ssl_password_file コンテキストのencryptedで各パスフレーズを試行して、指定されたファイルからパスフレーズを読み取るディレクティブ-private.key
indivは、-nodes
引数がOpenSSLがUNencrypted private.keyを作成することを意味することは正しいです。そうでない場合は、encrypted-private.keyを作成するためのパスフレーズプロンプトが表示されます。 req 、 pkcs12 、 CA.pl を参照
ただし、purpose(プログラマ向け)の理由は次のとおりです。
ssl_password_file file.keys;
またはhttp { }
コンテキストでserver { }
を指定します。 [ ref ]-nodes
を使用して、暗号化せずにprivate.keyを作成します便利:lock down private.key
Sudo chown root:ssl-cert private.key
- ch怒り 自分のprivate.keyからrootユーザー、ssl-certグループSudo chmod 640 private.key
-private.keyのアクセス許可を所有者R/W、グループRに変更オプションA
より強力なセキュリティ、ただしサーバーの再起動時には、パスフレーズを手動で入力 for encrypted-private.key
オプションB
中セキュリティ、おそらくA/Cのバランスが良い
オプションC
セキュリティが弱いが、暗号化されていないprivate.keyパスフレーズの入力を求められない