![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
AntonSaburov |
|
||||||||||||||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Здравствуйте.
Вот захотелось написать Как сделать SSL соединение на Java с использованием сокетов. Процесс создания соединения через SSL включает несколько этапов:
1. Создание объекта для хранилища ключей.
Итак, для привязки к какому-либо хранилищу ключей используются объекты класса KeyStore. Получить объект этого класса можно с помощью одного из трех статических методов getInstance(...). Первый параметр - строка - тип хранилища ключей. Второй параметр - либо объект класса Provider, либо строка - провайдер для указанного типа хранилища данных. После этого требуется загрузить хранилище данных, для этого используется метод load(...). Первый параметр - входной поток типа InputStream откуда производится загрузка (в нашем случае хранилище ключей - это файл), второй - пароль хранилища ключей. 2. Создание менежеров ключей и доверий.
Для создания менеджеров потребуются: алгоритмы запросов к хранилищу данных и провайдеры для них. Оба менеджера требуется инициализировать. Менеджеру доверий нужно указать хранилище ключей, а менеджеру ключей - хранилище и пароль ключа, который будет использоваться для соединения. 3. Создание контекста SSL.
Как и менеджеры объект контекста SSL требует создания и последующей инициализации. При создании указываются протокол передачи данных и провайдер для указанного протокола. При инициализации указываются два массива: один для ключей, второй для доверий. 4. Создание сокетов (серверного и клиентского). Теперь мы можем создать серверный и клиентский сокеты, которые можно будет использовать как обычные серверный и клиентский сокеты. Создание серверного сокета:
Создание клиентского соката:
Все. Теперь приложение: Работа с ключами производится с помощью утилиты keytool, входящей в состав SDK. Обычно выполняется три шага:
1 - алиас для ключа, 2 - алгоритм шифрования (типа rsa), 3 - размер ключа (от 512 до 2048), 4 - количество дней, пока ключ действителен, 5 - пароль ключа, 6 - имя файла - хранилища ключей, 7 - пароль хранилища. Экспорт ключа в сертификат.
1 - алиас экспортируемого ключа, 2 - файл сертификата (*.cer), 3 - файл хранилища ключей, 4 - пароль хранилища ключей. Импорт ключа из сертификата в хранилище ключей для клиента.
1 - алиас под которым будет храниться импортируемый ключ, 2 - файл сертификата (*.cer), 3 - пароль ключа, 4 - файл хранилища ключей, 5 - пароль хранилища ключей. //---------------------------------------------------------------------- P.S.: Ногами больно не пинайте. Писать я толком не умею. Может что-то объяснить сильнее надо было, напишите, подправлю. Всем спасибо за внимание. |
||||||||||||||||
|
|||||||||||||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |