Обработка запросов http и https с использованием одного порта с помощью lihgttpd
На данный момент я использую http и https в качестве другого порта. И, основываясь на запросе URI, я создал правило перенаправления с http на https и наоборот. Но если я могу использовать только один порт для https и https в lighttpd. Это будет лучшим решением.
Есть ли другой способ сделать это. Если это не доступно самому lighttpd. Как насчет комбинации tomcat и lighttpd, все же это невозможно?
2 ответа
Не осуществимо HTTP и HTTPS - это две разные службы, которые ведут себя заметно по-разному (несмотря на одинаковые имена и полезную нагрузку). Уникальные сервисы должны связываться с уникальными портами, чтобы клиент и сервер могли общаться на языке, который оба понимают.
Для этого вам потребуется клиент, который будет подключаться к порту, согласовывать, какой тип соединения должен быть установлен (HTTP или HTTPS), а затем переключаться в соответствующий режим связи. Эта логика согласования не существует на клиентах, поэтому у вас нет возможности реализовать эту серверную часть.
То, что вы хотите, это STARTTLS для HTTP. Это на самом деле предложено в RFC 2817, который был написан в том, что сейчас называется "Старые дни Йона Интернета". Я нашел несколько быстрых ссылок, в которых говорилось, что Apache и lighthttpd поддерживают это, но дальнейшие исследования разочаровывают lighttpd - извините за это. Вот документация по настройке с Apache, хотя; в принципе:
<VirtualHost _default_:80>
SSLEngine optional
...
</VirtualHost>
Там также нет поддержки клиентов. IE7 поддерживает некоторые изящные расширения TLS (SSL-сертификаты на основе имен могут быть возможны в наше время), но, очевидно, не STARTTLS/RFC 2817. И есть открытая ошибка для Mozilla, с большим количеством деталей, которые еще предстоит проработать. Одна из проблем заключается в том, что RFC делает шифрование действительно необязательным, что обычно нежелательно для большинства приложений шифрования в Интернете. Но так как вы используете пользовательский клиент, ни отсутствие общей поддержки браузера, ни проблема безопасности не являются проблемой.