Могу ли я преобразовать запросы HTTPS в запросы HTTP с помощью Netty?
Я добавляю новую функцию в общедоступное устаревшее приложение jQuery / HTML / CSS, обслуживаемое NGINX.
Приложение запрашивает ресурсы REST, направляемые NGINX, у Tomcat. Сервер Tomcat находится в сети VPN, которая включает в себя физически удаленные экземпляры Linux, к которым в рамках новой функции могут быть подключены IP-камеры. Только порт веб-сервера HTTP IP-камеры будет доступен серверу Tomcat через пересылку SSH из экземпляра Linux.
Часть новой функции включает в себя доставку нового приложения , уже установленного поставщиком в корне веб-сервера HTTP IP-камеры, для общественности в рамках устаревшего приложения.
Моя текущая реализация включает в себя (iframe), который указывает на новую конечную точку на Tomcat; код Java для этой конечной точки:
- создает обратный прокси-сервер на основе Netty на уровне TCP / IP при ответе на запрос GET для видеопотока камеры (однозначно идентифицирующий интересующий удаленный экземпляр Linux) - динамически созданный прокси-сервер формирует канал TCP / IP из Сервер Tomcat к экземпляру Linux внутри VPN- ПРИМЕЧАНИЕ. Я не хочу динамически манипулировать моей конфигурацией NGINX вместо создания обратных прокси по запросу.
- отвечает на указанный GET перенаправлением на корневой URL-адрес приложения камеры, используя динамически выделенный порт сервера Tomcat, например http://example.com:65555
Визуализируйте последовательность событий
Эта первая реализация отлично работает, например, загружает приложение React с камеры AXIS, которая обслуживает ресурсы JS / HTML / CSS через HTTP и использует RTSP через WS для передачи видеопотока в iframe устаревшего приложения.
То есть, она работает нормально локально , так и в моей среде разработки , когда наследство приложение будет показываемая через HTTP . Приложение камеры обслуживается только через HTTP, и я хочу рассматривать его как черный ящик - единственная настройка, которую я хочу / сделал для веб-сервера приложения камеры, - это разрешить CORS, возвращая соответствующий заголовок.
Однако при обслуживании устаревшего приложения через HTTPS для перенаправления на обратный прокси-сервер ТРЕБУЕТСЯ схема HTTPS (в противном случае браузер [например, Chrome] жалуется); и, конечно, HTTP-сервер камеры не обрабатывает HTTPS-запросы - FAIL.
Нужно ли мне просто добавить слой SOCKS-прокси к моему обратному прокси-серверу при обслуживании устаревшего приложения через HTTPS? Или, возможно, уровень TLS?
Динамически генерируемый обратный прокси-сервер основан на примере Netty здесь: https://github.com/netty/netty/tree/4.1/example/src/main/java/io/netty/example/proxy