Приложение Apache2 + SSL + Proxy для Sinatra: это будет работать? Или будет какое-то предупреждение для пользователя?

У меня есть ситуация, когда основной веб-сайт представляет собой устаревшее приложение, написанное на ColdFusion, которое я недавно перенес с MX 6.1 на 9.0.1. Другая часть сайта - блог / форум на PHP5 на WordPress. Теперь я добавляю платную функцию членства и интегрируюсь с API Chargify V2, используя Ruby & Sinatra. Весело, а? Во всяком случае, сейчас у меня есть начала работать с mod-proxy для отправки запросов из определенного подкаталога на главном сайте CF в приложение Sinatra. Это работает нормально по HTTP; Порт 80 на порт 9292. Но что произойдет, когда я попытаюсь использовать HTTPS; Порт 443 в порт 9292? В настоящее время у меня нет сертификата для этого хоста, так как в прошлом он не был необходим, поэтому я не знаю, как экспериментировать. Я просто хочу быть уверен, что браузер не будет жаловаться на неортодоксальное расположение. На самом деле я не беспокоюсь о безопасности отправки формы, потому что приложение шифрует ее без SSL. Единственная причина, по которой я хочу использовать SSL, - это доверие пользователя. Поэтому крайне важно, чтобы в браузере не было жалоб, которые могли бы снизить доверие пользователей (и, следовательно, конверсий).

1 ответ

Решение

Пользователи не будут знать, что соединение между прокси-сервером и внутренним сервером не зашифровано; их связь только с прокси. Но я не могу винить ваших пользователей за то, что они не доверяют шифрованию данных форм вне SSL - я бы тоже не стал!

В любом случае, вы не должны развертывать систему HTTPS-прокси-к-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>
Другие вопросы по тегам