|
|
|
| Здравствуйте.
Интересует, как именно должна срабатывать директива Listen, заданная с атрибутом protocol.
Если верить документации по Apahce, то этот атрибут нужен, например, для задания использования SSL на нестандартном порте. Проблема в том, что задание этого параметра не даёт никаго эффекта.
Пробую сделать следующее: задаю "Listen 81 https"+отключаю SSL (SSLEngine Off)+обращаюсь к хосту http://***.**:81 = всё работает успешно, а, по-идеи атрибута protocol директивы Listen, работать НЕ должно.
Обратное также верно: задаем "Listen 81 http"+включаем SSL (SSLEngine On)+обращаемся к хосту https://***.**:81 = всё работает успешно, а, по-идеи, работать НЕ должно. Таким образом, как я понимаю, получается, что сервер не отрабатывет атрибут protocol.
В связи с этим, есть два вопроса:
1. как именно должен сервер реагировать на атрибут protocol директивы Listen? Как правильно использовать этот атрибут?
2. как запретить, например, использование http на определённом порте? Так, чтобы при обращении к хосту с активированным SSL по протоколу http происходил либо редирект на https, либо отказ открыть узел (но, не ошибка 400)? | |
|
|
|
|
|
|
|
для: maxarturo
(10.07.2013 в 23:18)
| | Директив Listen может быть довольно много и они могут быть раскиданы по другим конфигурационным файлам. Поищите нет ли где еще Listen 443. Просто пройдитесь поиском.
>2. как запретить, например, использование http на определённом порте? Так, чтобы при обращении к хосту с активированным
>SSL по протоколу http происходил либо редирект на https, либо отказ открыть узел (но, не ошибка 400)?
Создайте виртуальный хост и поставьте на нем перенаправление на https (при помощи Redirect или ReWrite) | |
|
|
|
|
|
|
|
для: cheops
(11.07.2013 в 07:29)
| | >Директив Listen может быть довольно много и они могут быть раскиданы по другим конфигурационным файлам. Поищите нет ли где еще Listen 443. Просто пройдитесь поиском.
Зачем их искать? Их две и они обе описаны в файле ports.conf. Вопрос касаеться задания SSL на нестандартном порте и атрибута "протокол" директивы <Listen>.
>Создайте виртуальный хост и поставьте на нем перенаправление на https (при помощи Redirect или ReWrite)
Спасибо, кэп) А то я не знаю, как перенаправление делать) В том-то и проблема, что в даном случае ни Redirect, ни Rewrite, ни SSLRequire не срабатывает. Сервер даёт ошибку 400 (или же иную реакцию). Ни один из известных мне методов перенаправления Apache здесь не работает.
Просто попробуйте реализовать тот порядок действий, который я описал. | |
|
|
|
|
|
|
|
для: maxarturo
(11.07.2013 в 09:37)
| | Виртуальные хосты используются, как сейчас выглядит ports.conf? | |
|
|
|
|
|
|
|
для: cheops
(12.07.2013 в 07:57)
| | Описан виртуальный хост NameVirtualHost IP:81 <VirtualHost IP:81>.
ports.conf :
Listen 80
Listen *:81 https
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Единственный расклад конфигурации при котором срабатывает перенаправление - это дважды описание виртуального хоста IP:81, когда в одном есть только перенаправление типа Redirect 303 / https://host:81/, а в другом уже описан SSL и всё остальное. И в при таком конфиге действительно проиходит переброс запроса http://host.ru:81 на https://host.ru:81, однако сам узел уже не открывается с ошибкой. При любых других конфигурациях перенаправления не работают - вываливается 400-ка. | |
|
|
|