저는 Apache 서버 구성의 기본 사항을 배우려고 노력하고 있으며 Apache의 다양한 범위에서 SSL 지시어 유효성에 대해 궁금합니다.
그 지시문;
SSLEngine on
SSLCertificateFile "/etc/apache2/ssl/apache.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/apache.key"
SSLRequireSSL ...
어디에 배치할 수 있나요? VirtualHost 섹션에만 있나요? 이것을 전역 범위에 넣으면 작동합니까?
이 질문이 문맥에 어긋난다면 죄송합니다. 아직 Apache와 관련하여 몇 가지 포괄적인 문제가 있습니다. :)
답변1
아파치의 세계에 오신 것을 환영합니다! 첫 번째 교훈은 훌륭한 문서를 읽는 방법을 배우는 것입니다. Apache 문서에서 모든 지시어에는문맥서버의 구성 파일에서 지시문이 적합한 위치를 나타내는 섹션입니다. Syntax:
및 라인 바로 아래에서 찾을 수 있습니다 Default:
.
서버 구성이는 지시어가 서버 구성 파일(예:
httpd.conf
) 에서 사용될 수 있지만<VirtualHost>
또는<Directory>
컨테이너 내에서는 사용될 수 없음을 의미합니다..htaccess
파일에서는 전혀 허용되지 않습니다 .가상 호스트이 컨텍스트는 지시문이
<VirtualHost>
서버 구성 파일의 컨테이너 내부에 나타날 수 있음을 의미합니다.예배 규칙서이 컨텍스트에서 유효한 것으로 표시된 지시문은 구성 섹션에 설명된 제한 사항에 따라 서버 구성 파일의
<Directory>
,<Location>
, , 및 컨테이너 내에서 사용될 수 있습니다.<Files>
<If>
<Proxy>
.htaccess이 컨텍스트에서 지시어가 유효하다면 이는 디렉토리별 .htaccess 파일 내에 나타날 수 있음을 의미합니다. 현재 활성화된 재정의에 따라 처리되지 않을 수도 있습니다.
와 함께SSLEngine
,SSLCertificateFile
,SSLCertificateKeyFile
컨텍스트는 서버 구성 및 가상 호스트입니다. 이는 전체 서버에 대해 이를 지정할 수 있고 <VirtualHost>
.
그만큼SSLRequireSSL
지령반면에 디렉토리 및 .htaccess 컨텍스트에서는 합법적입니다. 이는 이를 디렉토리에 배치함으로써 이 디렉토리를 제공하는 HTTP 단독 가상 호스트가 존재하더라도 비 TLS 연결이 허용되지 않도록 지정할 수 있음을 의미합니다.
그러나 오늘날에는 불필요한 모든 것을 TLS로 보호해야 합니다 SSLRequireSSL
. 모든 HTTP를 HTTPS로 리디렉션하고 이를 시행합니다.HTTP 엄격한 전송 보안(HSTS) 정책(RFC 6797).