Пароль хранилища ключей должен совпадать с паролем сертификата PKCS12?
Я пытаюсь импортировать сертификат PKCS12, используя keytool в Java. Он работает нормально только тогда, когда пароль хранилища ключей совпадает с паролем сертификата. Обязательно ли использовать пароль сертификата PKCS12 для хранилища ключей?
2 ответа
Из документации keytool (перечислены только опции, относящиеся к этому вопросу):
keytool -importkeystore [ -srcstorepass srcstorepass ] [ -deststorepass deststorepass ] { -srcalias srcalias { -destalias destalias } [ -srckeypass srckeypass ]} [ -destkeypass destkeypass ]......
Импортирует одну запись или все записи из хранилища ключей источника в хранилище ключей назначения.
Если указана опция -srcalias, команда импортирует одну запись, идентифицированную псевдонимом, в хранилище ключей назначения. [...] Если исходная запись защищена паролем, для восстановления записи используется srckeypass. Если srckeypass не указан, то команда keytool пытается использовать srcstorepass для восстановления записи. Если srcstorepass либо не указан, либо неверен, пользователю предлагается ввести пароль. Пункт назначения защищен с помощью destkeypass. Если destkeypass не указан, то запись назначения защищена паролем входа источника. Например, большинству сторонних инструментов требуется, чтобы storepass и keypass в хранилище ключей PKCS #12 были одинаковыми. Чтобы создать хранилище ключей PKCS #12 для этих инструментов, всегда указывайте -destkeypass, совпадающий с -deststorepass.
Если опция -srcalias не указана, все записи в хранилище ключей источника импортируются в хранилище ключей назначения. [...] Если исходная запись защищена паролем, для ее восстановления используется srcstorepass. Если srcstorepass либо не указан, либо неверен, пользователю предлагается ввести пароль. [...] Пункт назначения защищен паролем источника.
Поэтому, обязательно ли использовать пароль сертификата PKCS12 для хранилища ключей, зависит от приложения, которое будет пытаться прочитать хранилище ключей.
Если вы полагаетесь на системные свойства Java для информирования JSSE о хранилище ключей, нет свойства для указания псевдонима конкретного ключа или его пароля. В этом случае у вас нет выбора, кроме как сделать пароли одинаковыми.