Каково значение ключевого пароля в хранилище ключей с помощью keytool

Я использовал следующую команду для создания jks для моего веб-приложения.

keytool -genkey -keyalg RSA -alias my-app -validity 10800 -keysize 2048 -sigalg SHA1withRSA -keystore myapp.jks

Эта команда вызвала несколько вопросов, как показано ниже:

Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  GS
What is the name of your organizational unit?
  [Unknown]:  XX
What is the name of your organization?
  [Unknown]:  YY
What is the name of your City or Locality?
  [Unknown]:  ZZ
What is the name of your State or Province?
  [Unknown]:  AA
What is the two-letter country code for this unit?
  [Unknown]:  BB
Is CN=GS, OU=XX, O=YY, L=ZZ, ST=AA, C=BB correct?
  [no]:  yes

Enter key password for <my-app> //Why this password is required???
        (RETURN if same as keystore password):  

Tomcat может прочитать это хранилище ключей, только если и пароль хранилища ключей [запрашивается в первый раз], и пароль ключа. Когда я использую какой-либо другой пароль вместо «пароля ключа», tomcat не запускается из-за файла хранилища ключей.
Мой вопрос заключается в том, каково значение пароля ключа.

P.S. Я видел эту ссылку. Здесь говорят:

Press RETURN when prompted for the key password (this action makes the key password the same as the KeyStore password).

Если оба пароля должны быть одинаковыми, то есть ли смысл задавать его дважды?


person G.S    schedule 11.08.2014    source источник


Ответы (3)


Как указано в JavaDoc

Значение keypass, которое вам будет предложено ввести, указывает пароль для секретного ключа, который будет сгенерирован. Вам всегда будет нужен этот пароль для доступа к записи хранилища ключей, содержащей этот ключ. Запись не обязательно должна иметь собственный пароль. Когда вас попросят ввести пароль ключа, вам будет предложено оставить его таким же, как пароль хранилища ключей.

Хранилище ключей может содержать несколько ключей, и доступ к каждому из этих ключей возможен только с использованием пароля. Таким образом, keytool просто дает вам возможность сохранить пароль ключа таким же, как и хранилище ключей, которое вы создаете.

person Maas    schedule 11.08.2014
comment
Спасибо! Любая идея, почему tomcat терпит неудачу, когда я использую другой пароль для пароля ключа? Или мне нужно настроить этот пароль также в server.xml? - person G.S; 11.08.2014
comment
Думаю, да, посмотрите, tomcat.apache.org/tomcat-6.0- doc/ssl-howto.html помогает просмотреть раздел «Редактирование файла конфигурации Tomcat и устранение неполадок». - person Maas; 11.08.2014
comment
Спасибо за ответ. Однако ссылка на фактический JavaDoc была бы неплохой. - person dforce; 18.08.2017

Как уже ответил @Maas, keyPassword требуется для доступа к записи ключа, которая хранится в KeyStore.

Это происходит так: сначала KeyStore Password используется для доступа/разблокировки KeyStore, а затем keyPassword используется для расшифровки записи ключа, которая находится внутри этого KeyStore.

Как правило, различные реализации/использование ssl предполагают использование одного и того же пароля для KeyStorePassword и keyPassword.

То же самое и в tomcat. Если вы видите документ tomcat.apache.org/tomcat-6.0-doc/ ssl-howto.html они четко заявили, что «ваш пароль для закрытого ключа и пароль хранилища должны быть одинаковыми. Если они различаются, вы получите сообщение об ошибке, аналогичное java.io .IOException: невозможно восстановить ключ, как описано в ошибке Bugzilla 38217, которая содержит дополнительные ссылки на этот выпуск"

введите описание изображения здесь

Даже реализация JSSE требует, чтобы KeyStorePassword и KeyPassword были одинаковыми.

введите описание изображения здесь

https://access.redhat.com/documentation/en-US/Fuse_MQ_Enterprise/7.1/html/Security_Guide/files/SSL-SysProps.html

https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#KeyManagerFactory

person Sushil Kumar Sah    schedule 07.09.2018

У вас может быть много ключей в одном хранилище ключей, каждый со своим паролем (или таким же, как у самого хранилища ключей, если вы его выбрали). Это ваше решение, насколько вы заботитесь о безопасности ключей.

person Gauntlet    schedule 11.08.2014
comment
спасибо за ваш ответ, но мой вопрос заключается в значении ключевого пароля, который запрашивается в конце. Я пытаюсь создать только одно хранилище ключей здесь - person G.S; 11.08.2014
comment
Да и в одном хранилище ключей может быть много ключей с разными паролями, как я уже сказал. - person Gauntlet; 11.08.2014
comment
Я понимаю. Здесь я генерирую закрытые ключи для своего приложения. Почему требуется 2-й пароль. Как вы сказали, много ключей - всегда пароль запрашивается не более двух раз. Кроме того, когда я использую какой-либо другой пароль для ключевого пароля, tomcat не может запуститься... - person G.S; 11.08.2014
comment
Да, именно так Tomcat работает с ключевыми файлами. Должен быть тот же пароль. - person Gauntlet; 11.08.2014