Назад | Перейти на главную страницу

Как предоставить HTTPS-доступ к веб-серверу, который не поддерживает SSL?

У меня есть программа (движение), которая обслуживает веб-страницу, показывающую прямую трансляцию с камеры. Я хочу сделать этот канал доступным через Интернет, но с использованием SSL и сертификата, чтобы канал могли видеть только те, у кого есть соответствующий сертификат. Что я хочу знать: есть ли что-то вроде прокси-сервера, который читает с сервера и обслуживает его версию SSL?

Предложение Уомбла об обратном прокси-сервере Apache - отличное предложение. Альтернативным решением было бы настроить станнель чтобы обернуть это. Stunnel будет более легким, чем Apache, если вы не ищете дополнительных преимуществ наличия полноценного веб-сервера перед камерой.

Редактировать 2016: Прошло много времени, но этот вопрос все еще привлекает внимание. Я сейчас рекомендую заминка. Hitch рассчитан на масштабируемость, а stunnel - нет. Если HTTP-заголовки или контент необходимо изменить прокси-сервером, я рекомендую Nginx.

Установите Apache с соответствующим виртуальным хостом и используйте ProxyPass (и вероятно ProxyPassReverse) для проксирования на вашу веб-камеру. Проверка подлинности клиентского сертификата сложнее, но не намного; как ни странно, результаты поиска Google для "аутентификации сертификата клиента apache" очень полезно.

Большинство универсальных веб-серверов также имеют модуль прокси, который включает Apache с mod_proxy, а также Nginx и lighttpd для более легкого решения.

Если вам просто нужен прокси SSL, то есть компонент, который получает только трафик SSL, распаковывает его, передает его в серверную службу и повторно шифрует ответ, вам следует взглянуть на станнель или шпилька. Поскольку эти инструменты делают только это, их проще настроить и, как правило, быстрее и потреблять меньше ресурсов, чем альтернативы (особенно Apache).

Другой вариант, который у вас, возможно, уже есть, - это VPN. В зависимости от брандмауэра, установленного перед устройством с веб-камерой / видеорегистратором, вы можете настроить мобильный IPSec VPN и сначала подключиться к брандмауэру, а затем получить доступ к камере через ее внутренний IP-адрес (опять же при условии, что камера с камерой подключена через NAT за брандмауэр).

Большинство «деловых» межсетевых экранов / маршрутизаторов теперь предлагают возможности VPN.

С помощью этой опции вы можете полностью отключить переадресацию портов, чтобы ваша камера больше не слушала извне и была доступна только после установления соединения VPN.

Это предоставит вам шифрование и аутентификацию с потенциально меньшей кривой обучения, чем настройка Apache в качестве обратного прокси-сервера, и без дополнительных затрат на оборудование (опять же, это зависит от того, что у вас есть).

Обратной стороной является то, что вам нужно будет настроить VPN-клиент на каждом компьютере, на котором вы хотите просматривать камеры, но также возникнут дополнительные накладные расходы администратора с сертификатами клиентов.

Следует также отметить, что, в зависимости от шифрования / протокола, VPN добавляет накладные расходы, которые могут влиять на пропускную способность сети, но это не должно быть проблемой с ожидаемым количеством пользователей и вероятностью победы камеры. не очень часто просматривать одновременно.

Если вы планируете доступ к камере только из одного удаленного местоположения *, вы также можете настроить туннель IPSec между брандмауэрами удаленного местоположения и местоположения камеры (так называемый VPN-туннель IPSec между сайтами). Таким образом, вам не нужно будет настраивать VPN-клиентов на каждой машине, на которой вы планируете просматривать камеры: вы можете просто открыть веб-интерфейс камеры в любом браузере на любой машине в этом удаленном месте (в зависимости от правил брандмауэра. курс).

Если вы предоставите нам марку / модель брандмауэра, мы можем предложить лучшую конфигурацию.

* Вы наверняка можете настроить дополнительные VPN-туннели между сайтами. Но если все 5 пользователей находятся в разных местах в Интернете, процесс настройки туннелей IPSec будет немного излишним, поэтому клиенты VPN будут более практичными (или их комбинация: т. Е. Если 4 из 5 пользователей находятся в одно место в Интернете, настройте там туннель IPSec; 5-й пользователь может использовать VPN-клиент).

Да, то, что вы описываете, выполнимо. Я полагаю, что есть несколько инструментов, которые могут это сделать, но я вполне уверен, что apache может это сделать. Вы описываете «обратный прокси» (что-то для Google) и аутентификацию на основе сертификатов. Для первого вам, вероятно, понадобится mod_rewrite, но у меня нет большого опыта работы со вторым.

Я не удивлюсь, если это смогут сделать еще несколько инструментов, например squid или устройство для ускорения SSL.