Разница между файлом .keystore и файлом .jks - PullRequest
187 голосов
/ 24 января 2012

Я попытался найти разницу между файлами .keystore и .jks, но не смог найти. Я знаю, что jks для "хранилища ключей Java", и оба способа хранения пар ключ / значение.

Есть ли разница или предпочтение использовать один над другим?

Ответы [ 3 ]

168 голосов
/ 28 января 2012

В конечном итоге, .keystore и .jks - это просто расширения файлов: вы должны разумно назвать ваши файлы.Некоторые приложения используют файл хранилища ключей, хранящийся в $HOME/.keystore: обычно подразумевается, что это файл JKS, поскольку JKS является типом хранилища ключей по умолчанию в поставщике безопасности Sun / Oracle Java .Не все используют расширение .jks для файлов JKS, поскольку оно подразумевается по умолчанию.Я бы порекомендовал использовать расширение, просто чтобы запомнить, какой тип указывать (если вам нужно).

В Java слово keystore может иметь одно из следующих значений, в зависимости от контекста:

Говоря о файле и хранилище, на самом деле это не хранилище для пар ключ / значение (для этого существует множество других форматов).Скорее, это контейнер для хранения криптографических ключей и сертификатов (я думаю, что некоторые из них также могут хранить пароли).Как правило, эти файлы зашифрованы и защищены паролем, чтобы эти данные не были доступны посторонним лицам.

Java использует свой класс KeyStore и связанный API для использования хранилища ключей( независимо от того, основан он на файле или нет ).JKS - это специфичный для Java формат файла, но API также можно использовать с другими типами файлов, обычно PKCS # 12.Если вы хотите загрузить хранилище ключей, вы должны указать его тип хранилища ключей.Обычные расширения:

  • .jks для типа "JKS",
  • .p12 или .pfx для типа "PKCS12" (имя спецификации PKCS # 12, но # не используется в имени типа хранилища ключей Java).

Кроме того, BouncyCastle также предоставляет свои реализации, в частности BKS (обычно с использованием .bks extension), который часто используется для приложений Android.

65 голосов
/ 26 января 2012

Вы запутались в этом.

A keystore - это контейнер сертификатов, личных ключей и т. Д.

Существуют спецификации того, каким должен быть формат этого хранилища ключей, и преобладающим является # PKCS12

JKS - это реализация хранилища ключей Java. Также есть BKS и т. Д.

Это все хранилище ключей типов .

Итак, чтобы ответить на ваш вопрос:

Разница между файлами .keystore и файлами .jks

Там нет ни одного. JKS - это файлы хранилища ключей. Между хранилищем ключей типов есть разница. Например. JKS против #PKCS12

4 голосов
/ 25 января 2018

Одной из причин выбора .keystore вместо .jks является то, что Unity распознает первый, но не последний, когда вы перемещаетесь, чтобы выбрать файл хранилища ключей (Unity 2017.3, macOS).

...