Apache Indexes 옵션은 HTTP에서는 작동하지만 HTTPS에서는 작동하지 않습니다.

Apache Indexes 옵션은 HTTP에서는 작동하지만 HTTPS에서는 작동하지 않습니다.

Rocky Linux 8.4 및 Apache 2.4의 바닐라 설치로 테스트하고 있습니다. 가상 호스트가 구성되어 작동하고 있으며 Certbot을 통해 Lets Encrypt 인증서도 구성했는데 이것도 훌륭하게 작동합니다.

특정 폴더에 디렉터리 목록을 허용하고 싶기 때문에 옵션 색인을 활성화했습니다. 이는 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 파일을 검색했지만 찾을 수 없습니다.

관련 정보