powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Клиент HttpClient и работа через клиентский сертификат
10 сообщений из 10, страница 1 из 1
Клиент HttpClient и работа через клиентский сертификат
    #38660171
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день!

Задача такая :

Есть сервер tomcat 7- в одном из потоков создается apache HttpClient 3.х который должен работать с удаленным сервером по https

удаленный сервер требует наличие клиентского сертификата ?!

вопрос как организовать такую работу ? нужен пример кода .

какие файлы нужны на моем сервере? есть name***.p12 (нужны ли pem файлы ?) -
все файлы , будут храниться в базе mysql , как организовать их хранение?

хранить файлы на диске сервера нельзя , только в базе .
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660230
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Java SSL работает с ключами из keystore. Формат файла часто называют JKS. Можно держать JKS в базе с импортироваными сертификатами и загружать в рантайме. Keystore можно передать в SSLSocketFactory для HttpClient.

Если JKS не подходит и нужно хранить ключи в pem/p12, то можно попробовать через TrustStrategy самому валидировать сертификаты этими ключами. Например через bouncycastle:
http://www.nakov.com/blog/2009/12/01/x509-certificate-validation-in-java-build-and-verify-chain-and-verify-clr-with-bouncy-castle/
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660271
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Спасибо : у меня виртуалка и там сервер томкат - есть доступ к базе - и есть только pem и p12 файлы .

нужно разрулить как то через них .
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660355
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
HttpClient httpclient = new HttpClient();
        GetMethod httpget = new GetMethod("https://localhost:8443/");
        try {
            
            httpclient.executeMethod(httpget);
            System.out.println(httpget.getStatusLine());
        } finally {
            httpget.releaseConnection();
        }



И как ему подпячить pem и p12 ?
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660481
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется прямых решений для HttpClient 3.х вовсе нет ?!

странно
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660502
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Кажется прямых решений для HttpClient 3.х вовсе нет ?!

странно
Прямых решений вида httpclient.setMyPEM(InputStream pemFile) нет. Я уже написал выше, что ковырять надо в сторону TrustStrategy (нагуглить пример?), а ключи из файлов либо парсить самостоятельно (нагуглить пример?), либо через bouncycastle (нагуглить пример?). А потом самостоятельно сверять сертификат сервера (ссылку привел выше).
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660722
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Странно все это . Ведь очень частая задача - написать клиента ккорый будет работать с сервером по сертификату..

Спасибо, буду гуглить
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660758
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Странно все это . Ведь очень частая задача - написать клиента ккорый будет работать с сервером по сертификату..

Ни JSE API, ни HttpClient не умеют работать с ключами в указанном формате. Либо парсить руками, либо импортировать в JKS.
SSL в JSE сделан слегка через ж. Просто работать оно не может без сертификатов в JKS. У HttpClient с этим немного лучше, но он не может использовать ключи в вашем формате. Только JKS.
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660959
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
фактически алгоритм такой = получить ключи из базы - и преобразовать .
...
Рейтинг: 0 / 0
Клиент HttpClient и работа через клиентский сертификат
    #38660970
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1фактически алгоритм такой = получить ключи из базы - и преобразовать .
Куда преобразовать? Зачем? Надо их загрузить в объекты, которые предоставляеь JSSE API или bouncycastle. И оперируя этими объектами провалидировать сертификаты сервера. Ну, или смотря с какой целью вообще SSL используется.

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

http://hc.apache.org/httpclient-3.x/sslguide.html Examples of SSL customization in HttpClient

There are several custom socket factories available in our contribution package. They can be a good start for those who seek to tailor the behavior of the HTTPS protocol to the specific needs of their application:

EasySSLProtocolSocketFactory can be used to create SSL connections that allow the target server to authenticate with a self-signed certificate.
StrictSSLProtocolSocketFactory can be used to create SSL connections that can optionally perform host name verification in order to help preventing man-in-the-middle type of attacks.
AuthSSLProtocolSocketFactory can be used to optionally enforce mutual client/server authentication. This is the most flexible implementation of a protocol socket factory. It allows for customization of most, if not all, aspects of the SSL authentication.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Клиент HttpClient и работа через клиентский сертификат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]