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

Apache перезаписывает http-запрос на https

У меня есть сервер apache v2.2 с виртуальным хостом на 80 и другим с SSL на 444. Я хотел бы перенаправить все такие запросы:

http://domain.tld:444/dir1
http://domain.tld:444/dir2

(без https на порт SSL) на

https://domain.tld:444/dir1
https://domain.tld:444/dir2

Во избежание ошибки 400 Bad request. Вы знаете, как это можно сделать?

Заранее спасибо.

Вы не можете этого сделать. Если вы включили SSL для порта 444, соединение без SSL с этим портом просто не будет работать.

Apache не может сделать это напрямую. Когда он прослушивает порт, он прослушивает либо обычный HTTP-трафик, либо HTTPS-трафик, и другой тип соединения просто не работает.

Однако умное приложение может попытаться проверить исходные данные подключения, решить, какой тип подключения выполняется, и предпринять соответствующие действия. sslh Является ли это. Чтобы использовать его, вам нужно будет настроить два виртуальных хоста Apache, каждый из которых будет прослушивать другой порт по адресу localhost. С их помощью у вас будет sslh прослушивать порт 444 и перенаправлять трафик HTTP и HTTPS на соответствующие внутренние порты.

Просто настройте свою конфигурацию на использование перенаправления mod_alias:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://www.example.com/
</VirtualHost >

Источник: mod_alias # перенаправление