LINUX.ORG.RU

SocksProxy поддерживает ли ssl?

 ,


1

1

Приветствую участников форума!

Сделал для личных нужд, простой Socks4 сервер, с http работает отлично, но вот с https отказывается работать. А конкретно проблема в передаче данных между браузерным сокетом и целевым. Во время передачи от целевого сокета в браузерный, неожиданно send вываливается с исключением ECONNRESET. Данные передаются потоково, то есть принял с сокета 1024 байт и тут же отправил. Первая порция данных ответа от целевого до браузерного отправляется нормально но при второй браузерный сокет разрывает подключение. Сам я с ssl протоколом знаком поверхностно. Есть ли необходимость добавлять прослойку сертификации ssl и всего прочего чтобы сервер работал и с https? Или ошибка все таки, в логике моего приложения? Где-то на stackoverflow.com читал то что якобы необходимо при ssl принимать, аккумулировать данные в переменную когда recv возвратит null байт, только тогда, уже можно отправлять данные в принимающий сокет.

null возвращается когда сокет закрывается. А он хрен там закрывается.

tyamur ★★ ()

Ssl идёт внутри соксированного соединения. Если вам нужен ssl для самого линка до сокс-сервера, почему бы просто не воспользоваться stunnel?

Nastishka ★★★★★ ()
Ответ на: комментарий от Nastishka

Мне как раз нужен прозрачный прокси. Незнаю, какие-то проблемы при передаче, во время 4 этапного рукопожатия. Первый запрос от браузера к целевому серверу проходит нормально, сервер схватывает эти данные и серверный сокет переводится в режим готов для чтения, то есть данные для ответа, затем уже в обратном направлении идут данные от серверного сокета до браузерного, и вот тут браузер разрывает соединение, с исключением «SSL Protocol Error» примерно такое.

equilibrium ()
Ответ на: комментарий от equilibrium

Прозрачный прокси и сокс - понятия вообще говоря крайне слабо (почти никак) не совместимые.

Или ошибка все таки, в логике моего приложения?

Да. Подозреваю, что man 2 shutdown вы читали невнимательно.

Nastishka ★★★★★ ()
Ответ на: комментарий от Nastishka

Прозрачный прокси и сокс - понятия вообще говоря крайне слабо (почти никак) не совместимые.

Имел ввиду то что ssl работает на том же уровне что и http и поэтому можно манипулировать данными не имея понятия как работает ssl, просто соблюдать порядок запрос - ответ.

Сегодня переписал скрипт на PHP и все отлично работает, ну правда медленно, потому как в один поток все и распараллелить никак, да вобщем-то и так сгодится для выгребания выдачи.

equilibrium ()
Ответ на: комментарий от equilibrium

Оказывается функция send() отправляет данные вместе с нулем в начале, некоторые браузеры воспринимали ответ от сервера не как http а как бинарные данные application/octet-stream, и иза этого кстати и было исключение «SSL Protocol Error». Такое чувство будто функция recv() недочитала последний нулевой символ.

(Python2.7)

equilibrium ()
Ответ на: комментарий от equilibrium

Все, вопрос можно отметить решенным. Загвоздка была в этом самом нулевом байте, а передал я его лишним в ответе сокс сервера браузеру о том что соединение с целевым хостом установлено, по протоколу необходимо отправлять 8 байт.

equilibrium ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.