Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 23

JSSE и HTTPS соединение с аутентификацией клиента

28.04.2008, 12:00. Показов 1924. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно HTTPS соединение с аутентификацией клиента. Использую JSSE 1.02.
С помощью утилиты keytool сгенерил пару ключей, сделал самоподписанный запрос на сертификат. Отослал запрос на собственный СА (из win2000) и получил сертификат, подписанный этим СА. Импортировал сей сертификат в keystorage. Туда же добавил сертификат сервера как доверенный сертификат (как certificate entry). В общем, анонимный HTTPS проходит нормально. Проблема возникает когда настраиваешь сервер на аутентификацию клиента. Клиент почему-то не отсылает свой сертификат серверу. После получения от сервера запроса на сертификат клиент пишет:
main, SEND SSL v3.0 ALERT: warning, description = no_certificate
сервер пишет:
warning: Client did not supply a certificate, closing connection
дальше продолжаются хэндшейки и при попытки отправки данных на сервер
вываливается exception:
java.io.IOException: Error writing to server
Мой код:

System.setProperty('java.protocol.handle r.pkgs', 'com.sun.net.ssl.internal.www.protocol') ;
System.setProperty('javax.net.debug','al l');
java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()) ;
System.setProperty('javax.net.ssl.trustS tore', 'D:/work/mykeystore');

com.sun.net.ssl.SSLContext ctx;
com.sun.net.ssl.KeyManagerFactory kmf;
java.security.KeyStore ks;
ctx = com.sun.net.ssl.SSLContext.getInstance(' SSL');
kmf = com.sun.net.ssl.KeyManagerFactory.getIns tance('SunX509');
ks = java.security.KeyStore.getInstance('JKS' );
ks.load(new java.io.FileInputStream('D:/work/mykeystore'), '123123'.toCharArray());
kmf.init(ks, '123123'.toCharArray());
ctx.init(kmf.getKeyManagers(), null, null);

com.sun.net.ssl.HostnameVerifier hv = new com.sun.net.ssl.HostnameVerifier()
{
public boolean verify(String urlHostname, String certHostname)
{
System.out.println('HTTPS hostname wrong in server certificate.');
return true;
}
};

com.sun.net.ssl.HttpsURLConnection.setDe faultHostnameVerifier(hv);

java.net.URL url = new java.net.URL('https://servlet_address');

com.sun.net.ssl.HttpsURLConnection conn = (com.sun.net.ssl.HttpsURLConnection) url.openConnection();

conn.setRequestMethod('POST');
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);

java.io.InputStream in0;

String rres = '';
java.io.ObjectOutputStream out = new java.io.ObjectOutputStream(conn.getOutpu tStream());
out.writeObject('Hello, server! It's me - CLIENT!');
out.close();

in0 = conn.getInputStream(); //connect

java.io.ObjectInputStream in = new java.io.ObjectInputStream(in0);
rres = (String) in.readObject();
System.out.println('Response from server:'+'
'+rres);

Почему же клиент не отсылает свой сертификат?
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2008, 12:00
Ответы с готовыми решениями:

Https соединение не находит сертификат
На одном и том же сайте разделы разделы прилинкованы к разным доменным именам. Разные имена имеют разные сертифиаты. К примеру...

Https соединение с сертфикатам пользователя
Доброго времени суток помогите разобраться с андроидами только начинаю дружить основа взята из инета мне нужно установить...

Как сделать HTTPS соединение в Тomcat?
Привет всем. Я пытаюсь усложнить себе жизнь: Апплет коннектится к сервлету и получает параметр, используя не HTTP, а HTTPS. ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2008, 12:00
Помогаю со студенческими работами здесь

Https соединение с сертфикатам пользователя и сервера
Добрый день. Есть следующая ситуация. Есть сервер, у него есть свой сертификат. Есть клиент, у него свой сертификат. Заходя через браузер...

https & php (зашифрованное соединение)
Есть следующая задача: юзер заполняет форму, нажимает submit. Далее, необходимо чтобы данные пошли на сервер не просто так, а в...

Соединение клиента и сервера
Пожалуйста, помогите! Не знаю, что уж и делать... Сделал клиент-серверный шаблон по примеру из этого сайта: ...

Закрыть соединение со стороны клиента
Как в boost::asio закрыть соединение со стороны клиента?

Повторное соединение с https невозможно, если при первом возникла ошибка
Здравствуйте, столкнулся с такой проблемой: первое подключение к https проходит без проблем, но если словить ошибку (напр, неверный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru