| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Работа с сетью > Как сделать SSL-соединение использую сокеты |
| Автор: Slavca 2.3.2005, 22:31 | ||||||||||||||||
| Здравствуйте. Вот захотелось написать Как сделать 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.: Ногами больно не пинайте. Писать я толком не умею. Может что-то объяснить сильнее надо было, напишите, подправлю. Всем спасибо за внимание. |
| Автор: AntonSaburov 3.3.2005, 12:43 |
| Статья понравилась. Было бы просто супер, если бы был пример реально работающего приложения. Чтобы можно было у себя на машинке запустить и передать строку от клиента к серверу. Но все равно СПАСИБО |
| Автор: Slavca 3.3.2005, 16:39 |
| Пример сделаю. Но как его разместить? У меня сваво сайта нету. |
| Автор: AntonSaburov 3.3.2005, 17:19 |
| Прямо здесь размещай текст. Я не думаю, что он просто огромен. Или высылай мне. |
| Автор: Guest 28.3.2005, 16:16 |
| А как быть с Proxy и авторизации в нём? |