У меня есть ситуация, когда основной веб-сайт - это устаревшее приложение, написанное на ColdFusion, которое я недавно перешел с MX 6.1 на 9.0.1. Другая часть сайта - это блог / форум на PHP5 на WordPress. Теперь я добавляю функцию платного членства и интегрирую с Chargify V2 API с помощью Ruby и Sinatra. Весело, а? В любом случае, прямо сейчас у меня есть начало работы с мод-прокси для отправки запросов из определенного подкаталога на основном сайте CF в приложение Sinatra. Это нормально работает по HTTP; Порт 80 на порт 9292. Но что произойдет, когда я попытаюсь использовать HTTPS; Порт 443 - порт 9292? В настоящее время у меня нет сертификата для этого хоста, так как в прошлом он не требовался, поэтому я не знаю, как проводить эксперименты. Я просто хочу быть уверен, что браузер не будет жаловаться на нестандартное устройство. На самом деле я не беспокоюсь о безопасности отправки формы, потому что приложение шифрует ее без SSL. Единственная причина, по которой я хочу использовать SSL, - это доверие пользователей. Поэтому крайне важно, чтобы от браузера не поступало жалоб, которые могут снизить доверие пользователей (и, следовательно, конверсии).
Пользователи не будут знать, что соединение между прокси-сервером и внутренним сервером не зашифровано; их подключение только к прокси. Но я не могу обвинять ваших пользователей в том, что они не доверяют шифрованию данных форм вне SSL - я бы тоже не стал!
В любом случае вам не следует развертывать таким образом систему HTTPS-proxied-to-HTTP, если вы не уверены, что трафик между прокси-сервером и серверной частью безопасен. Если этот широковещательный домен доступен, например, любым пользователям (а не только серверам), они могут легко отравить ARP и захватить этот трафик.
Если есть какой-либо риск того, что это вообще произойдет, используйте SSL для связи между прокси и сервером - не требуется много усилий для его настройки.
Чтобы запустить тестовый пример, вы можете просто настроить самозаверяющий сертификат и запустить прослушиватель SSL.
Listen 443
<VirtualHost *:443>
ServerName ssl.example.com
SSLEngine On
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/cert.key
ProxyPass / http://backend:9292/
ProxyPassReverse / http://backend:9292/
</VirtualHost>