Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отработка атрибута protocol директивы Listen
 
 автор: maxarturo   (10.07.2013 в 23:18)   письмо автору
 
 

Здравствуйте.
Интересует, как именно должна срабатывать директива 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)?

  Ответить  
 
 автор: cheops   (11.07.2013 в 07:29)   письмо автору
 
   для: maxarturo   (10.07.2013 в 23:18)
 

Директив Listen может быть довольно много и они могут быть раскиданы по другим конфигурационным файлам. Поищите нет ли где еще Listen 443. Просто пройдитесь поиском.

>2. как запретить, например, использование http на определённом порте? Так, чтобы при обращении к хосту с активированным
>SSL по протоколу http происходил либо редирект на https, либо отказ открыть узел (но, не ошибка 400)?
Создайте виртуальный хост и поставьте на нем перенаправление на https (при помощи Redirect или ReWrite)

  Ответить  
 
 автор: maxarturo   (11.07.2013 в 09:37)   письмо автору
 
   для: cheops   (11.07.2013 в 07:29)
 

>Директив Listen может быть довольно много и они могут быть раскиданы по другим конфигурационным файлам. Поищите нет ли где еще Listen 443. Просто пройдитесь поиском.
Зачем их искать? Их две и они обе описаны в файле ports.conf. Вопрос касаеться задания SSL на нестандартном порте и атрибута "протокол" директивы <Listen>.

>Создайте виртуальный хост и поставьте на нем перенаправление на https (при помощи Redirect или ReWrite)
Спасибо, кэп) А то я не знаю, как перенаправление делать) В том-то и проблема, что в даном случае ни Redirect, ни Rewrite, ни SSLRequire не срабатывает. Сервер даёт ошибку 400 (или же иную реакцию). Ни один из известных мне методов перенаправления Apache здесь не работает.
Просто попробуйте реализовать тот порядок действий, который я описал.

  Ответить  
 
 автор: cheops   (12.07.2013 в 07:57)   письмо автору
 
   для: maxarturo   (11.07.2013 в 09:37)
 

Виртуальные хосты используются, как сейчас выглядит ports.conf?

  Ответить  
 
 автор: maxarturo   (12.07.2013 в 16:35)   письмо автору
 
   для: 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-ка.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования