| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Как сделать SSL-соединение использую сокеты |
| Автор: AntonSaburov 3.3.2005, 12:39 | ||||||||||||||||
| Здравствуйте. Вот захотелось написать Как сделать 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.: Ногами больно не пинайте. Писать я толком не умею. Может что-то объяснить сильнее надо было, напишите, подправлю. Всем спасибо за внимание. |