Що таке пароль для виклику?


170

Я встановлюю SSL на сервері Ubuntu. Одним із полів, яке він запитує, як частину налаштування CSR, є "пароль для виклику". Що це? За замовчуванням порожнє. Чи потрібно мені ввести його?

Відповіді:


152

"Пароль виклику", який запитується як частина покоління 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

Таким чином, повинно бути зрозуміло, як виглядає зашифрований приватний ключ (який апаш або будь-який інший сервер, що підтримує SSL, при його запуску потрібно буде розблокувати) та приватний ключ в простому тексті (який не вимагає розблокування у час запуску служби). . Тепер я згенерую КСВ із паролем виклику із незашифрованого ключа:

$ 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), вбудованим у КСВ, який емітент може використовувати для аутентифікації, якщо вам це буде потрібно. Деякі видачі сертифікатів SSL роблять це зрозумілішим, ніж інші; дивіться внизу цієї сторінки, щоб побачити, де вони кажуть, що потрібен пароль для виклику - це не тоді, коли ви перезапустите apache:

Якщо ви вирішите ввести та використати пароль для виклику, вам потрібно переконатися, що ви збережете цей пароль у безпечному місці. Якщо вам з будь-якої причини вам доведеться перевстановити сертифікат, вам буде потрібно ввести цей пароль.


2
Чи є різниця між "SSL-емітентом" та CA (Certificate Authority)?
Джонатан

3
Технічно вони не видають сам протокол SSL, а швидше сертифікат, сумісний з SSL. Я відчуваю, що емітент SSL менш зрозумілий. На мою скромну думку, видавець SSL сертифікатів був би зрозумілим.
Джонатан

6
Дуже (дуже) повна відповідь, коли ІМХО нікому не потрібен. Виходячи з поставленого запитання, ви можете усунути всю свою відповідь, за винятком того, що наступний текст "Пароля виклику" - це загалом загальне таємне поняття ... ". Я вважаю, що відповів би на поставлене запитання так само повно, з менш відволікаючими невідповідну інформацію.
Джо

3
@joe дякую! Те, що ви не можете бачити (тому що у вас немає представника), - це те, що я відповідав на попередньо видалену відповідь дуже високо оціненого користувача (який у даному випадку, на жаль, був неправильним), так що це мало зробити покрокове спростування. Подальше його видалення, яке не було зроблено його автором, робить моє вигляд трохи дивним, але до цих пір я вирішив дати йому можливість стояти. Якщо достатньо інших підтримає вашу точку зору, оскарживши ваш коментар, я виправлю свою відповідь.
MadHatter

3
Мене здивувало це саме те питання, і ця відповідь виявилася не такою корисною для мого обмеженого розуміння теми (завдяки тому, як це написано), але, на щастя, я знайшов свою відповідь від security.stackexchange.com/a/77082/67048
загримсан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.