|
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
|
|
Https соединение с сертфикатам пользователя и сервера24.09.2012, 09:35. Показов 11697. Ответов 9
Метки нет (Все метки)
Добрый день. Есть следующая ситуация. Есть сервер, у него есть свой сертификат. Есть клиент, у него свой сертификат. Заходя через браузер на сервер - браузер проверяет сертификат сервера. После, уже сервер проверяет сертификат клиента. Обычная ситуация.
Вопрос. Мне надо сделать приложение под андройд с выходом к серверу с сертификатом клиента. Примерно так я это вижу: Кидаю сертификат пользователя в телефон(через шнур в любую папку как простой файл), потом указываю как-то путь к сертификату(какой-нить opendialog, по кторому получаю путь к сертификату) и устанавливаю https - соединение с сервером с авторизацией, при этом сертификат сервера принимаю по умолчанию. Почитала пару статей, но так ничего полезного не нашла. http://blog.crazybob.org/2010/... cates.html, Получение JSON с https сервера - тут только как принять сертификат сервера. А как установить соединение с сервером через сертификат клиента - ни где не могу найти. Занимаюсь данной проблемой уже несколько дней. Кто может подсказать, была бы очень признательна. Как создать http соединение знаю, могу как с авторизацией, так и без нее. Мне осталось только одно сделать hhtps соединение с моим сертификатом. Но почему-то разобраться не могу.
0
|
|
| 24.09.2012, 09:35 | |
|
Ответы с готовыми решениями:
9
Https соединение с сертфикатам пользователя Получение JSON с https сервера Https соединение не находит сертификат |
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
|||||||||||||||||||||
| 26.09.2012, 23:27 | |||||||||||||||||||||
|
Покопался тут чуть...
Вот чего понял (попытался понять, ибо проверить не на чем): 1. ключевой момент в этом месте
XXX - X509KeyManager[] - набор менеджеров для работы с клиентскими сертификатами YYY - X509TrustManager[] - набор менеджеров для работы с серверными сертификатами В теме Получение JSON с https сервера имеется пример реализации интерфейса X509TrustManager. Для X509KeyManager так же можно создавать реализацию интерфейса. К примеру (очень грубо - не проверял) так
Получение сертификата из файла (дабы вернуть его методом getCertificateChain):
Но, так или иначе, финальная работа ведется с набором KeyManager, полученных kmf.getKeyManagers(). Я же выше предлагаю написать свою реализацию X509KeyManager, который будет отдавать SSLContext-у сертификат. Вроде как все сходится Проверить не могу, а потому не уверен в своих рассуждениях. ps: кстати, в мануале так и написано - "A X509KeyManager can also be implemented directly. This can allow an application to return a certificate and private key from a non-KeyStore source or to specify its own logic for selecting a specific credential to use when many may be present in a single KeyStore.". По-русски - "X509KeyManager также может быть реализован непосредственно. Это может позволить приложению вернуть сертификат и закрытый ключ от не-KeyStore источника или указать собственную логику для выбора конкретных учетных данных для использования если их может находиться много в одном хранилище ключей."
1
|
|||||||||||||||||||||
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
|
| 28.09.2012, 20:41 | |
|
Olix, таки вышло чего путного?
0
|
|
|
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
|
|
| 01.10.2012, 07:34 [ТС] | |
|
Не совсем
![]() Если без клиентского сертификата делать, то все получается замечательно. Но этого мало. А если с клиентским..., то вылетает такая ошибка: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorExce ption: Trust anchor for certification path not found. Это примерно значит что соответствующее хранилище сертификатов не используется при попытке соединения - сервер свою часть ключа предоставляет, а клиент - нет. Сегодня хочу сделать последнюю попытку, добиться соединения с клиентским сертификатом. О результатах отпишусь
0
|
|
|
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
|
||||||||||||||||
| 02.10.2012, 08:39 [ТС] | ||||||||||||||||
|
Так что-то у меня ничего не получилось с клиентским сертифкатом.
Так работает. Но это самое простое.
И так не получается:
Все делаю по примерам. Сертификат клиентский рабочий - я с ним на сайт захожу-верификацию спокойно прохожу. Я его в keystore грузила и как *.p12 и в формате bks, через keytool импортированный. Но толку мало.
0
|
||||||||||||||||
|
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
|
|||||||||||||||||||||
| 03.10.2012, 14:30 [ТС] | |||||||||||||||||||||
|
Меня грызла это недоделанное https соединение. В итоге сегодня убила день на поиск информации и на различные попытки. И все такие труд вознаграждается!
Вот замечательная статейка ,которая помогла мне: http://www.javadocexamples.com... .java.html 1. Закидываю сертифкат в формате p12 на телефон 2. Узнаю путь к нему - path 3. "Создаем хранилище для клиентского сертфиката":
4. "Создаем серверное хранилище" или как оно там еще называется:
Всем Спасибо!
1
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 20.09.2013
Сообщений: 2
|
|
| 20.09.2013, 17:02 | |
|
Если я всё правильно понял, то это не рабочий способ, а обходной путь, так как нет проверки сертификатов, то есть принимаются любые сертификаты, что сводит на нет всё https.
0
|
|
|
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
|
||
| 21.09.2013, 07:57 [ТС] | ||
|
Добавлено через 1 минуту Было бы приятно увидеть рабочий способ. Потому что это очень актуально, а в интернете информации мало.
0
|
||
|
0 / 0 / 0
Регистрация: 20.09.2013
Сообщений: 2
|
|||||||
| 21.09.2013, 08:19 | |||||||
|
Так вот, для меня почти работает следующий способ: 1. Сохраняем всю цепочку сертификатов, промежуточные и корневой. Я сохранял через firefox, но можно и через openssl. 2. Качаем BountyCastle отсюда. 3. Потом для всех сертификатов в правильном порядке (от промежуточных до корневого) добавляем сертификаты в keystore: keytool -importcert -v -trustcacerts -file "path_to_your_cert\your.crt" -alias YOUR_ALIAS -keystore "path_to_your_keystore\your.bks" -provider org.bouncycastle.jce.provider.BouncyCast leProvider -providerpath "path_to_provider\bcprov-jdk15on-1.46.jar" -storetype BKS -storepass secretpassword 4. Положить keystore в папку res/raw 5. Дальше в коде нужно сделать примерно следующее:
Полезные ссылки: 1. http://nelenkov.blogspot.ru/20... re-on.html 2. http://blog.chariotsolutions.c... es-on.html
0
|
|||||||
|
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
|
|
| 22.09.2013, 08:16 [ТС] | |
|
Хм...надо будет посмотреть подробно и попробовать. Спасибо!
0
|
|
| 22.09.2013, 08:16 | |
|
Помогаю со студенческими работами здесь
10
Как сделать HTTPS соединение в Тomcat? https & php (зашифрованное соединение)
Как с file_get_contents вывести информацию https сервера?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|