Виды программирования, программирование, языки программирования, книги программирование На сайте представлена информация про программирование в Интернете и работу  

XP Look in Java, работа с visual editor
JOptionPane, Не показывается собака :)
Как Вы относитесь к курящим девушкам?
Append в Java., Добавление информации в файл.
Прежде чем задать вопрос, прочтите это!
Документация и книги по Java, Давайте соберём ссылки
Прежде чем задать вопрос, прочтите это!
FAQ по JAVA, Вопросы и ответы
нужен пример проверки аунтификации, при помощи java.net.Authenticator;java.n
Работа с MulticastSocket
Поток и считывание данных из сети, как остановить такой поток
POP3 + SSL, нужен пример
Как читать фаил с сервера
передача данных методом post, как сделать!
FindBugs in JavaCode, tools
Серверная часть сетевого приложения
mailto:, URLConnection-JavaExamples in a Nutshell
соединение с удаленным сервером через ssh тунель
SocketOutputStream.write, зацикливание в этой функции
java.net.URL неправильно понимает путь к файлу, проблема с двоеточием (под windows)
JSP ест память, фантастика
Как изменить атрибуты файла?, нужно установить +x для скрипта на Perl
net help, need your help
копируем файлы в папку
Как сохранить картинку
Рандомное число
Клиент-сервер
Проблема при парсинге сайта?
Как сделать SSL-соединение использую сокеты, маленький howto
escape-последовательности
Работа с сокетами
FTPClient????
jakarta HttpClient юзал кто?, Опять проксик...
Вызов удаленных методов, RMI:Как это делается
Как узнать не занятый порт?
прослушиваем порт 80. возможно?
нужен специалист по Java
Как записать информацию со страницы в файл?
как послать файл в сокет, желательно, пример :)
удалённая установка сертификатов на клиент, имея админские права
вызов jsp, как вызвать jsp из java-ы
Ватягивания текста с сайта?
Доступ к защищённой Web-странице (SSL)
Cчитывание информации с ftp сервера
Отсутствие timeout в SocketClient.connect()
Снова Прокси сервер, автоматическое обнаружение
Авторизация через прокси
jdk vs. third party library, сравнение библиотек
SendMail, помогите начинаюшему с сетью..
Proxy, Как работать ч-з прокси?
Как Вы относитесь к курящим девушкам?
Прежде чем задать вопрос, прочтите это!
Документация и книги по Java, Давайте соберём ссылки
исчезает сокет
UDP в Java, Как это работает...?
Проблема с получением значений от формы
Считать файл из ftp
Работа с потоковым-видео в JAVA, вопрос про потоковое-видео
в созданном файле изменить тип файла по умолчанию
dos-ностальгия, GUI под консолью
Кофе с печеньем, Cookie на Java клиенте
FTPClient из commons-net-1.2.2, проблеммы с русскими буквами
Swing приложение, работающее с сетью, проблема с потоками
FTP, превышен интервал ожидания
Написание браузера.
http-proxy client
Качалка на java
Письмо с аттачем
TCP Socket, timeout
сокеты, не работает отправка/принятие параметров

Платные хостинги     Раскрутка сайта     Книги по программированию


Как сделать SSL-соединение использую сокеты, маленький howto

Только здесь 1000 посетителей на Ваш сайт всего за 3 у.е.!

- Здравствуйте. Вот захотелось написать Как сделать SSL соединение на Java с использованием сокетов.Процесс создания соединения через SSL включает несколько этапов:создание объекта для хранилища ключей;создание менежеров ключей и доверий;создание контекста SSL;создание сокетов (серверного и клиентского).В приложении описано как создать ключи и хранилище ключей.1. Создание объекта для хранилища ключей.Код    //параметры для загрузки хранилища ключей    String KSType="JKS", KSProvider="SUN", KSFileName="keystore.ks", KSPassword="keystorepassword";    KeyStore ks=KeyStore.getInstance(KSType,KSProvider);    ks.load(new BufferedInputStream(new FileInputStream(KSFileName)), KSPassword.toCharArray());highlightSyntax('javamZDZhN','java');Итак, для привязки к какому-либо хранилищу ключей используются объекты класса KeyStore. Получить объект этого класса можно с помощью одного из трех статических методов getInstance(...). Первый параметр - строка - тип хранилища ключей. Второй параметр - либо объект класса Provider, либо строка - провайдер для указанного типа хранилища данных. После этого требуется загрузить хранилище данных, для этого используется метод load(...). Первый параметр - входной поток типа InputStream откуда производится загрузка (в нашем случае хранилище ключей - это файл), второй - пароль хранилища ключей.2. Создание менежеров ключей и доверий.Код    //параметры для создания менеджеров    String KeyPassword="keypassword", KMFAlgorithm="SunX509", KMFProvider="SunJSSE", TMFAlgorithm="SunX509", TMFProvider="SunJSSE";    KeyManagerFactory kmf=KeyManagerFactory.getInstance(KMFAlgorithm,KMFProvider);    kmf.init(ks,KeyPassword.toCharArray());    TrustManagerFactory tmf=TrustManagerFactory.getInstance(TMFAlgorithm,TMFProvider);    tmf.init(ks);highlightSyntax('javaFjYTgy','java');Для создания менеджеров потребуются: алгоритмы запросов к хранилищу данных и провайдеры для них. Оба менеджера требуется инициализировать. Менеджеру доверий нужно указать хранилище ключей, а менеджеру ключей - хранилище и пароль ключа, который будет использоваться для соединения.3. Создание контекста SSL.Код    //параметры для создания контекста    String SSLCProtocol="TLSv1", String SSLCProvider="SunJSSE";    SSLContext sslc=SSLContext.getInstance(SSLCProtocol,SSLCProvider);    sslc.init(kmf.getKeyManagers(),tmf.getTrustManagers(),null);highlightSyntax('javaMWJkMz','java');Как и менеджеры объект контекста SSL требует создания и последующей инициализации. При создании указываются протокол передачи данных и провайдер для указанного протокола. При инициализации указываются два массива: один для ключей, второй для доверий.4. Создание сокетов (серверного и клиентского).Теперь мы можем создать серверный и клиентский сокеты, которые можно будет использовать как обычные серверный и клиентский сокеты.Создание серверного сокета:Код    //параметры для создания серверного сокета (всего один - порт, который будем слушать)    int port=4911;    try {        SSLServerSocketFactory ssf=sslc.getServerSocketFactory();        SSLServerSocket ss=(SSLServerSocket)ssf.createServerSocket(serverport);        ss.setNeedClientAuth(true);//требуем аутентификацию подключающихся клиентов    }catch(Exception e){        e.printStackTrace();    }highlightSyntax('javaTg3MDM','java');Создание клиентского соката:Код    //параметры для создания клиентского сокета    String host="localhost";    int port=4911;    try {        SSLSocketFactory sf=sslc.getSocketFactory();        SSLSocket s=(SSLSocket)sf.createSocket(host,port);        s.setWantClientAuth(true);//клиент хочет пройти процедуру аутентификации    }catch(Exception e){        e.printStackTrace();    }highlightSyntax('javaDQ0ZDV','java');Все. Теперь приложение:Работа с ключами производится с помощью утилиты keytool, входящей в состав SDK.Обычно выполняется три шага:генерирование ключа;экспорт ключа в сертификат;импорт ключа из сертификата в хранилище ключей для клиента.Генерирование ключа.Код keytool -genkey -alias [1] -keyalg [2] -keysize [3] -validity [4] -keypass [5] -keystore [6] -storepass [7]highlightSyntax('javaGQ2MjB','java');1 - алиас для ключа,2 - алгоритм шифрования (типа rsa),3 - размер ключа (от 512 до 2048),4 - количество дней, пока ключ действителен,5 - пароль ключа,6 - имя файла - хранилища ключей,7 - пароль хранилища.Экспорт ключа в сертификат.Код keytool -export -alias [1] -file [2] -keystore [3] -storepass [4]highlightSyntax('javaYWZhYT','java');1 - алиас экспортируемого ключа,2 - файл сертификата (*.cer),3 - файл хранилища ключей,4 - пароль хранилища ключей.Импорт ключа из сертификата в хранилище ключей для клиента.Код keytool -import -alias [1] -file [2] -keypass [3] -keystore [4] -storepass [5]highlightSyntax('javaxNGQ0O','java');1 - алиас под которым будет храниться импортируемый ключ,2 - файл сертификата (*.cer),3 - пароль ключа,4 - файл хранилища ключей,5 - пароль хранилища ключей.//----------------------------------------------------------------------P.S.: Ногами больно не пинайте. Писать я толком не умею. Может что-то объяснить сильнее надо было, напишите, подправлю.Всем спасибо за внимание.

- Статья понравилась. Было бы просто супер, если бы был пример реально работающего приложения. Чтобы можно было у себя на машинке запустить и передать строку от клиента к серверу. Но все равно СПАСИБО

- Пример сделаю. Но как его разместить? У меня сваво сайта нету.

- Прямо здесь размещай текст. Я не думаю, что он просто огромен. Или высылай мне.

Интернет казино     Онлайн игры     Увеличение члена     Купить DVD


Главная страница | программирование 1с предприятие | язык программирования pascal | виды программирования | программирование процессоров | язык программирования 1с | программирование assembler | методология программирования | прикладное программирование | программирование turbo pascal | парадигмы программирования | удаленная программирование | программирование управления | справочник программирования | задачи математическому программированию | методики программирования | программирование outlook | компьютерное программирование | программирование деревья | высокоуровневое программирование | программирование delphi скачать | программирование сигнализации | теория языков программирования | программирование микропроцессоров | обоснование языка программирования | программирование win32 | Ссылки

Все про программирование управления