У меня есть сервер 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 # перенаправление