web-dev-qa-db-ja.com

チャレンジパスワードとは何ですか?

UbuntuサーバーでSSLを設定しています。 CSRの設定の一部として要求されるフィールドの1つは「チャレンジパスワード」です。それは何ですか?デフォルトは空白です。入力する必要がありますか?

171
Will Martin

CSR生成の一部として要求される「チャレンジパスワード」は、秘密鍵の暗号化に使用されるパスフレーズ(が鍵生成時に要求されたとき、または後で平文の鍵が暗号化されるときに要求されます-次に要求されます)これを使用するSSL対応サービスが起動するたびに)。

生成されるキーと生成されたキーの先頭は次のとおりです。

$ openssl genpkey -algorithm rsa -out foo.key
............++++++
...++++++

$ head -3 foo.key
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9jNAG4Noy//r/S
eeK/gEgGOV0BZm0CYmgSQGj4P6N3cJsPlGsG80qKTxTFwoEiXnM3BVeBpDdXhGKt

このキーにはパスフレーズがありません。作成時に入力を求められず、入力もしていません。次に、暗号化されたキーを生成しましょう:

$ openssl genpkey -algorithm rsa -des3 -out bar.key
...........................................++++++
.....................................++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

$ head -3 bar.key
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQInfwj1iv3icMCAggA
MBQGCCqGSIb3DQMHBAizMHBklBexiwSCAoDtRKf1WtMiVMH7HraGTIG0rlQS6Xuj

したがって、暗号化された秘密鍵(Apacheまたはその他のSSL対応サーバーは、起動時にロックを解除する必要があります)とプレーンテキストの秘密鍵(サービスの開始時にロック解除を必要としない)がどのように見えるかを明確にする必要があります。ここで、CSRを生成しますwithunencryptedからチャレンジパスワードキー:

$ openssl req -new -key foo.key
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:asdfasdf
An optional company name []:
-----BEGIN CERTIFICATE REQUEST-----
MIIBmzCCAQQCAQAwQjELMAkGA1UEBhMCWFgxFTATBgNVBAcMDERlZmF1bHQgQ2l0
eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEAn2M0Abg2jL/+v9J54r+ASAY5XQFmbQJiaBJAaPg/o3dwmw+U
awbzSopPFMXCgSJeczcFV4GkN1eEYq2Cmam3tH6t8mVDh0/UryJSWBsaFm9mh9RF
gIpP0hEkYZTf/0X+X06ukt9S/Id9Z/tVgPsZA3TcNjNhJfVaTm81/4ykq8UCAwEA
AaAZMBcGCSqGSIb3DQEJBzEKDAhhc2RmYXNkZjANBgkqhkiG9w0BAQUFAAOBgQCa
ivuDRBlHOhBjg6wPbH9NvCnvEnxeEAkYi0Sl/Grdo/WCk17e+sv9wgqEW1QSIdbV
XzMeWidurv4AtcATwhfk9tBcYBCTxANkTONzhJG7Yk9OAz8g8Ljo8EEvPf4oHqpw
tBg10DCD2op0lCwL2LBdPO3RG20f/HD6fEXPVxZdOQ==
-----END CERTIFICATE REQUEST-----

そして、キーが魔法のように暗号化されていないことを示すためだけに:

$ head -3 foo.key
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9jNAG4Noy//r/S
eeK/gEgGOV0BZm0CYmgSQGj4P6N3cJsPlGsG80qKTxTFwoEiXnM3BVeBpDdXhGKt

もう一度言います。CSR生成の一部として要求される「チャレンジパスワード」は、秘密鍵の暗号化に使用されるパスフレーズと同じではありません。 「チャレンジパスワード」は基本的に、ユーザーとSSL証明書発行者(別名認証局(CA))の間で共有される秘密のナンスであり、CSRに埋め込まれており、発行者が必要に応じて認証するために使用できます。一部のSSL証明書発行者は、それを他の発行者よりも明確にしています。確認 このページの下部にある チャレンジパスワードが必要であると彼らが言っている場所を確認するには、Apacheを再起動するときにではありません

チャレンジパスワードを入力して使用する場合は、そのパスワードを安全な場所に保存する必要があります。何らかの理由で証明書を再インストールする必要がある場合は、そのパスワードを入力する必要があります。

153
MadHatter