![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Доброго времени суток!
Возникла необходимость написать клиент-сервер по защищенному протоколу TCP с использованием SSL. Говорю сразу, перед тем как создавать тему, прошарил поиском здесь и ничего не нашел толкового (единственно http://forum.vingrad.ru/forum/s/6e3b...ic-274886.html), только HTTPSend+SSL, который мне не нужен. По кускам из интернета попробовал следующее: Поток сервера: Код:
Код:
Поправьте меня, где неверно сделал. Заранее спасибо!
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 27.08.2013 в 17:19. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 19.08.2011
Сообщений: 329
|
![]()
Посмотрите пример в папке ...\source\demo\httpsserv и для тестирования библиотек SSL ...\source\demo\FreePascal\testssl. pas. И почитайте оф. документацию по https.
Надеюсь, поможет |
![]() |
![]() |
![]() |
#3 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Хорошо, а если мне нужен слущающий порт, отличный от 443? У меня все же TCPS сервер, а не HTTPS-сервер...
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
#4 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Разобрался. Теперь сервер корректно обрабатывает SSL-подключения и принимает данные от клиента.
Встал вопрос валидации клиента при подключении (аналогичная проблема рассматривалась на http://forum.vingrad.ru/forum/s/6e3b...ic-274886.html). Есть приватный ключ и публичный сертификат. Подключаться к серверу должны только подписанные этим сертификатом клиенты. При подключении логгирует ошибку. привожу рабочий код сюда (кому-то может пригодится): Код серверного потока: Код:
Код:
Код:
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 28.08.2013 в 15:20. |
![]() |
![]() |
![]() |
#5 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Поставлю вопрос немного по-другому, может так понятнее будет.
Дело обстоит так: клиент может подключиться к моему серверу вообще без сертификата и получить корректный ответ. Как это исправить? как сделать, чтобы при подключении клиента сервер проверял наличие сертификата и его совпадение с сертификатом на сервере? Сервер должен обрабатывать только подписанных клиентов.
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 19.08.2011
Сообщений: 329
|
![]()
А проблем с SSL-библиотеками нет?
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
3D Hunter, попробуйте банально взять сниффер и посмотреть что приходит на ваш сервер от клиента с/без сертификата в момент подключения. На этом и ловите.
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
не указано чем проверять, сертификат сервера не в счет...
мне кажется нужно заполнить еще или SSL.CertCA или SSL.TrustCertificate
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#9 | |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Порылся на сайте сунапса. Lukas Gebauer пишет по этому поводу следующее:
Цитата:
Т.е. CertCAFile нужен в случае корневого сертификата, но у меня его нет и он в принципе не требуется, ибо никакой вышестоящий CA не должен проверять мой серверный сертификат. Версия библиотек рекомендуется автором сунапса и скачана с его сайта.
"ковыряю изнутри" (с)
|
|
![]() |
![]() |
![]() |
#10 | |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
1. CA - само подписанный (иногда подписан вышестоящим CA) используется только для выдачи сертификатов и RevocationList
2. ServerCert - подписан чем угодно, обычно подписан CA. 3. ClientCert - подписан CA. Итого нужно минимум 3 сертификата и ключи к ним. Server доверяет себе и сертификатам выданным CA т.е. чтоб проверить клиента ему нужен сертификат CA http://saintist.ru/2009/04/29/svoy-ssl-sertifikat/ Цитата:
Не стесняемся, плюсуем!
![]() Последний раз редактировалось Slym; 29.08.2013 в 13:48. |
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Synapse. Создание Web-сервера | Lardes | Работа с сетью в Delphi | 2 | 23.02.2013 00:19 |
Synapse + SSL + Socks5 = виснут соединения | Puhovoi | Работа с сетью в Delphi | 2 | 01.12.2012 22:39 |
Клиент-серверное приложение, создание сервера через MS SQL Server и подключение c ADO (CRM) | StuDenT5x3 | БД в Delphi | 5 | 14.08.2011 17:12 |
как создать TCP клиент, TCP сервер ? | DreamMaster911 | C/C++ Сетевое программирование | 1 | 26.10.2010 15:05 |
Реализация клиент сервер через delphi и java | Horus92 | Свободное общение | 0 | 15.10.2010 22:27 |