Рейтинг:0

Параметр индексов Apache работает для HTTP, но не для HTTPS

флаг lk

Я тестирую ванильную установку Rocky Linux 8.4 и Apache 2.4. У меня настроен и работает виртуальный хост, и я также настроил сертификат Lets Encrypt через Certbot, это также отлично работает.

Я хочу разрешить списки каталогов в определенной папке, поэтому включил индексы параметров, это работает, как и ожидалось, через HTTP, но через HTTPS я получаю 403 Forbidden. Сценарий Certbot вставил правило перезаписи, но я не думаю, что это проблема, я попытался отключить его, чтобы я мог протестировать через HTTP, и это не имеет значения, но включает его здесь, если оно действительно актуально.

Конфигурация моего виртуального хоста выглядит так:

<VirtualHost *:80>
    ServerName test.prot0type.com
    ServerAlias test.prot0type.com
    DocumentRoot /var/www/test.prot0type.com

    <Directory /var/www/test.prot0type.com/test>
        Options +Indexes
    </Directory>

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =test.prot0type.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
    ServerName test.prot0type.com
    ServerAlias test.prot0type.com
    DocumentRoot /var/www/test.prot0type.com

    <Directory /var/www/test.prot0type.com/test>
        Options +Indexes
    </Directory>

</VirtualHost>

Доступ http://test.prot0type.com/test/ работает как положено.

Доступ https://test.prot0type.com/test/ приводит к 403, и в журнале ошибок я получаю:

Невозможно обслуживать каталог /var/www/test.prot0type.com/test/: не найден соответствующий DirectoryIndex (index.html), а сгенерированный сервером индекс каталога запрещен директивой Options.

Как узнать, какая директива Options это делает? Я искал все файлы conf, но не могу найти.

digijay avatar
флаг mx
Кажется, у вас нет конфигурации VirtualHost для порта 443, поэтому вы получаете 403, если пытаетесь подключиться к этому порту.
tgflash avatar
флаг lk
Но он делает серверные файлы через HTTPS для этого виртуального хоста. Единственная проблема заключается в том, что конфигурация +Indexes работает только для HTTP. Я попытался продублировать конфигурацию виртуального хоста и изменить порт на 443, но это тоже не работает. Я думаю, должно быть, что-то переопределяет настройку в другом месте конфигурации, но я обыскал все файлы и не могу найти.Есть ли способ диагностировать, откуда исходит директива?
tgflash avatar
флаг lk
Отредактировал исходный вопрос, чтобы уточнить, как я тестировал.
Michael Hampton avatar
флаг cz
Пожалуйста, покажите полный `` блоки.
digijay avatar
флаг mx
В конфигурации 443 отсутствует вся конфигурация TLS/SSL («SSLEngine On» и т. д.).
tgflash avatar
флаг lk
Ах! Спасибо за подсказки, теперь я решил это. При проверке файлов conf я пропустил, что скрипт certbot создает отдельный ssl.conf для каждого виртуального хоста, и именно здесь была дополнительная директива Options. Итак, в моем примере этот файл называется test.prot0type.com-le-ssl.conf. Поэтому решением было отредактировать блок виртуального хоста в этом файле, который предназначен для порта 443, поэтому теперь список каталогов работает как для HHTP, так и для HTTPS. Спасибо тем, кто направил меня в правильном направлении!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.