Можем ли мы загрузить несколько сертификатов и ключей в хранилище ключей? - PullRequest
29 голосов
/ 16 июня 2011

Можем ли мы загрузить несколько сертификатов и ключей в хранилище ключей?

Всегда ли требуется загружать только пары (то есть сертификаты и ключи вместе)?

Если в хранилище ключей есть несколько сертификатов и ключей, который будет выбран, когда Java SSL попытается установить соединениекак сервер?

Ответы [ 2 ]

17 голосов
/ 16 июня 2011

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

Какая комбинация ключа и сертификата используется для сервера на основе Java, будет зависеть от того, как было реализовано приложение. Ряд приложений позволяет вам выбрать данный сертификат, используя имя alias . Ключи и получатели сертификатов в KeyStore принимают параметр alias, чтобы сделать этот выбор. Обычно, когда это не указано в конфигурации, приложение или инфраструктура будут использовать первое подходящее средство, найденное на основе перечисления KeyStore.aliases().

Например, Tomcat использует атрибут keyAlias в своей конфигурации Connector :

keyAlias: псевдоним, используемый для сервера сертификат в хранилище ключей. Если не указал первый ключ, прочитанный в Будет использовано хранилище ключей.

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

3 голосов
/ 16 июня 2011

У вас может быть хранилище ключей с таким количеством сертификатов и ключей, сколько вам нужно.

Если в хранилище ключей имеется несколько сертификатов, которые клиент использует в качестве хранилища доверенных сертификатов, все сертификаты просматриваются до тех пор, пока не будет найдено, что одинподходит.Вы можете посмотреть на предустановленные сертификаты, они находятся в / lib / security / cacerts.Это просто большая коллекция сертификатов корневых центров сертификации.

Что касается ключей, которые я не знаю.Я бы сказал, что клиент использует ключ, который подписан тем же центром сертификации, что и сертификат, предоставленный сервером, и, если их несколько, используется первый.Но я не могу сказать это точно.

...