В чем разница между cacerts и хранилищем ключей?


113

В чем разница между ними, cacerts и хранилищем ключей?

Если я использую определение из этих ссылок, cacerts и хранилища ключей , мне кажется, что это набор сертификатов, но в контексте распределенной системы (Java). Какой из них используется для аутентификации во время SSL-соединения? Оба или только один из них или чередование?


3
cacerts = сертификаты центра сертификации ?
Питер Мортенсен

Ответы:


139

cacerts - это магазин доверия. Хранилище доверенных сертификатов используется для аутентификации одноранговых узлов. Хранилище ключей используется для аутентификации.


Привет, EJP, спасибо за ответы, я процитировал это, прежде чем я прочитал любой из ваших ответов;) Так что просто пояснение, если я суммирую ваши ответы во Фрэнсисе и Пангеи. Cacerts используется для аутентификации клиентов, запрашивающих доступ или соединение, а для хранилища ключей я не совсем понимаю, почему вы хотите аутентифицировать себя. :)
dimas

20
Прочтите то, что я написал еще раз. (1) Склад доверенных сертификатов используется для аутентификации одноранговых узлов. Если вы клиент, сервер является партнером; если вы сервер, то наоборот. (2) Если вы сервер, или если вы клиент и аутентификации сервер запрашивает клиента, вы должны идентифицировать себя к партнеру, так что вам нужен собственный сертификат и закрытый ключ, которые находятся в хранилище ключей. (Как ни странно, для обоих используется один и тот же формат файла, и он называется файлом хранилища ключей.)
Маркиз Лорн,

Хорошо, понятно, но просто следующий вопрос. Мои cacerts содержат все сертификаты, хранящиеся в хранилище ключей, и многое другое. Хотя некоторые сертификаты, включая частный сертификат моего приложения, имеют разные псевдонимы, но имеют одинаковые цифровые подписи. Итак, в идеале я могу использовать свои cacerts, если я подключаюсь к серверу и запрашиваю аутентификацию?
dimas

Я не понимаю, что такое «разные псевдонимы». Отличается от чего? На ваш последний вопрос можно ответить экспериментально.
Marquis of Lorne

3
@ raja777m cacerts- это тот, кому вы доверяете. Я не вижу причин для этого изменения между средами, если только вы не совершите ошибку использования самозаверяющих сертификатов для тестовых серверов: ошибка, потому что это означает, что вы используете разные пути кода в тесте и в производстве.
Маркиз Лорн,

41

cacerts - это место, где Java хранит общедоступные сертификаты корневых центров сертификации. Java использует cacerts для аутентификации серверов.

Хранилище ключей - это место, где Java хранит закрытые ключи клиентов, чтобы они могли делиться ими с сервером, когда сервер запрашивает аутентификацию клиента.


@dimas Очевидно, но на самом деле он имеет в виду «запросы».
Marquis of Lorne

1
@ user207421 Я верю, что в этом ответе приложение Java играет роль клиента http, а URL-адрес http, который вызывает наше приложение Java, является серверным приложением. Итак, KeyStore нашего клиентского Java-приложения должно иметь как закрытый ключ + сертификат (подписанный открытый ключ), так и отправлять только сертификат в серверное приложение, верно? И если серверное приложение также является Java-приложением, оно проверяет сертификат, отправленный нашим клиентским Java-приложением, используя свой собственный файл cacert, верно?
user104309

0

Cacerts - это сведения о доверенных органах подписания, которые могут выдавать сертификаты. Это то, что есть у большинства браузеров, из-за чего сертификаты считаются подлинными. У Keystone есть сертификаты, относящиеся к вашим услугам, для аутентификации клиентов.


-2

Проверьте свой путь JAVA_HOME. Поскольку система ищет файл java.policy, расположенный в папке JAVA_HOME/jre/lib/security. Ваш JAVA_HOME всегда должен быть ../JAVA/JDK.


3
спасибо за усилия, но вы должны прочитать и понять ответ EJP.
dimas
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.