Защита Java соединений с использованием ключей в хранилище keystore.
В статье блога рассматривается вопрос защиты http соединений пользователей Kablink с использованием SSL протокола, понимание этого механизма позволит успешно осуществлять безопасное подключение браузеров и приложений с Порталом.
Все пути и каталоги указанны в парадигме Kablink
В теории java, используют терминологию хранилищ для закрытых и открытых ключей, таких хранилищ два: keystore и truststore, значение которых различаются следующим образом:
- keystore - содержит закрытые ключи, необходимые при запуске сервера для работы в SSL режиме и аутентификации клиента на стороне сервера, по умолчанию находится в каталоге,
/opt/novell/teaming/apache-tomcat/conf/.keystore
точка указывает на скрытый характер этого файла - truststore - содержит ключи прошедшие подписку доверенных сертификатов от центров CA (certificate authorities), в том числе и самоподписанные сертификаты вашей организации находящиеся в каталоге
/opt/novell/teaming/jre/lib/security/cacerts
, файл cacerts содержит все алиаса (alais) и их цифровые SHA1 отпечатки от доверенных и самоподписанных CA. - keytool - утилита управления хранилищем keystore и truststore, находится в каталоге
/opt/novell/teaming/jre/bin/
, при вызове требует пароль для доступа к хранилищу keystore или truststore , по умолчанию пароль доступа-changeit
, можно менять но лучше этого не делать - вид аутентификации односторонний и
При развёртывание Kablink\Vibe в keystore и truststore уже присутствуют сертификаты и alais с непонятным сроком действия и сомнительной подписью, их необходимо заменить на доверительные, которыми можно в дальнейшем управлять, а главное понимать как и для чего это делать. Распишем пошаговые действия, которые нам потребуются для понимания всего хода наших действий.
- пересоздать хранилища keystore и truststore
- генерировать ключ сертификаты
- "обернуть" генерированный ключ, создав самоподписанный self-signed сертификат в центре CA вашего предприятия
- импортировать самоподписанный в хранилище truststore
- *генерировать запрос на получение сертификата (Certificate Signing Request (CSR))
- *получить CSR, подписанный доверенным CA (output of this is a certificate)
- *импортировать сертификат, сделанный CA в хранилише keystore
- *импортировать сертификат CA в хранилише truststore
* обозначены шаги для создания сертификата выданного коммерческим или государственным центром сертификации СА
Остановимся на первых трёх пунктах
уу