Я работаю над настольным приложением C ++, которое использует сокеты OpenSSL (необработанный сокет TLS, а не HTTPS) для связи с нашим сервером.
Один из наших клиентов должен направить свой трафик c через прокси. Клиент использует ZScaler в режиме Tunnel с режимом Local Proxy .
Теоретически можно перенастроить ZScaler для принудительной передачи нашего трафика c через прокси, выбранный ZScaler. Однако я хочу исследовать решения, в которых наше приложение использует настройки прокси Windows на уровне ОС, а не полагается на конфигурацию ZScaler.
Я читал этот пост: openssl s_client с использованием прокси
Но я не уверен, применимы ли эти ответы к моей ситуации, потому что этот пользователь не упомянул, используют ли они Windows или Linux, и, похоже, он говорит о HTTP / HTTPS прокси. Кроме того, кажется, что этот вопрос касается функции s_client
, а не просто создания сокета TLS для моего сервера через "Туннель с локальным прокси" на Windows.
Итак, мои вопросы:
Можно ли использовать OpenSSL для открытия сокета SSL для сервера через туннель с локальным прокси?
Можем ли мы сделать вызов ОС, чтобы определить IP / сокет для конфигурации туннеля с локальным прокси?
Если это возможно, то у меня есть другой вопрос: предположим, у нас есть один прокси на 10.100.10.0:5000
.
Если один пользователь в офисе нашего клиента откроет сокет для нашего сервера через свой прокси, не сможет ли второй пользователь подключиться из своего офиса, потому что у него узкое место в одном сокете прокси?
Другими словами: каков стандартный способ реализации осведомленности о прокси для Windows приложения, использующего OpenSSL?
Примечание: Этот вопрос был первоначально отправлен на обмен стека Network Engineering, но он был закрыт, поскольку он относится к проблеме выше уровня OSI 4.
Примечание : Я ищу решение, которое не требует прав администратора для пользователя P C. Я бы предпочел, чтобы наше приложение обнаруживало и использовало настройки прокси на уровне операционной системы, не внося каких-либо административных изменений в компьютер, например, вызывая netsh
.