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

Настройте Apache2.2 как шифровальщик / конвертер http в https

Я использую Apache 2.2 в SUSE 10 с mod_ssl.

Моя проблема: я хочу подключить клиента (поддерживающего только http) к серверу (поддерживающего только HTTPS). Поэтому я подумал о развертывании Apache в качестве прокси для преобразования сообщения HTTP в сообщение HTTPS. Я установлю сертификаты сервера на самом Apache. Примечание. Клиент и сервер здесь не являются обычным браузером и веб-сервером. Это веб-службы на основе SOAP, использующие настраиваемые порты (порт 80 или 443 не используется)

Мое предполагаемое развертывание выглядит следующим образом: Клиент ----------> Apache (прокси) -----------> HTTPS-сервер

Мой вопрос: 1) Возможен ли этот тип развертывания с использованием Apache? 2) Какая конфигурация в apache нужна? 3) Нужен какой-то конкретный модуль apache?

Я уже пробовал «RewriteEngine» и «RewriteRule», как это предлагается на большинстве сайтов. Я получаю следующую ошибку «302 Найдено» Код ошибки от сервера Apache.

Вы могли бы иметь Client ---> Apache(proxy) ---> HTTPS Server на самом деле.

Однако вам потребуется настроить Apache Httpd как обеспечить регресс прокси. (Обычный прокси-сервер HTTP использует CONNECT для обработки запросов HTTPS: это предполагает, что клиент сможет использовать сам HTTPS, поскольку он просто ретранслирует соединение). Для этого вам нужно будет использовать mod_proxy для этого (и mod_proxy_http) и используйте SSLProxy* директивы, как описано в mod_proxy документация. (Обратные прокси-серверы с mod_proxy и SSL часто используются наоборот.)

Обратной стороной является то, что установка может быть довольно сложной. Предположительно, этот HTTPS-сервер использует HTTPS только по какой-то причине: вам нужно, чтобы ваш прокси был настроен как можно ближе к вашему клиенту, чтобы избежать раскрытия не-HTTP-варианта этого сайта другим.

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

На ум приходит один момент: некоторая информация, относящаяся к HTTPS, может обрабатываться по-другому, в частности, безопасные файлы cookie, которые браузер не будет отправлять на сервер (поскольку он не будет подключаться через HTTPS): это может быть не проблема для веб-службы на основе SOAP.