일부 디렉토리에 대해 SSL을 사용한 액세스 만 허용하도록 Apache를 제한하십시오.


34

SSL을 사용하여 액세스 해야하는 여러 서비스를 호스팅하는 SSL 인증서가있는 Apache 2.2 서버가 있습니다.

즉, https : //myserver.com/topsecret/은 허용되어야하지만 http : //myserver.com/topsecret/은 거부되거나 이상적으로 https로 리디렉션되어야합니다. http://myserver.com/public 에는이 제한이 없어야하며 http 또는 https를 사용하여 작동해야합니다.
http 허용 / 거부 결정은 최상위 디렉토리에서 이루어지며 그 아래의 모든 내용에 영향을줍니다.

이러한 방식으로 액세스를 제한하기 위해 Apache 구성에 배치 할 수있는 지시문이 있습니까?

답변:


38

SSLRequireSSL의 지시자는 당신이 찾고있는 것입니다.

내부 <VirtualHost>또는 가상 호스트를 사용하지 않는 경우 최상위 레벨 :

<Directory /topsecret>
  SSLRequireSSL
</Directory>

또는 .htaccess:

SSLRequireSSL

1
서버 결함에 오신 것을 환영합니다! 우리는 답변이 내용에 대한 포인터가 아닌 내용을 갖는 것을 선호합니다. 이것은 이론적으로 질문에 답할 수 있지만 여기에 답의 필수 부분을 포함시키고 참조 링크를 제공하는 것이 바람직 합니다. 고맙습니다!
Chris S

8
좋아, 나는 다섯 살짜리 게시물을 예제로 업데이트했다 :)
Thomas

1
5 살이 건 아니건 공정하게, 추론은 당신이 가리키는 링크가 사라질 수 있고, 나중에 정보를 찾는 누군가에게 답을 거의 또는 전혀 쓸모 없게 만든다는 것입니다. 그래서 나는 당신의 끔찍한 의견을 실제로 투표했습니다 (정직한). 그러나 나는 그것이 대답이 유용하게 유지되도록 대답이 어떤 맥락을 가져야한다는 것에 전적으로 동의합니다. 특히 정답으로 표시되어 있기 때문입니다.
Craig

나는 SO / SF 커뮤니티가 링크와 "lmgtfy"에 대해 엄격하다고 생각하지 않습니다. 그러나 나는 동의한다. 소급 수정은 언제든지 의미가 있습니다.
토마스

지시문을 어떤 구성 파일에 추가합니까?
dan carter

8

전역 구성에서는 다음을 사용할 수 있습니다.

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} !on
   RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L,QSA]
</IfModule>

마찬가지로 보안 디렉토리 트리의 첫 번째 디렉토리에서 .htaccess 파일을 사용할 수 있습니다.

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} !on
   RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L,QSA]
</IfModule>

마지막 하나는 전역 또는 가상 호스트 구성에서 디렉토리 지시문 안에 배치 할 수도 있습니다.


HTTP를 HTTPS로 리디렉션하면 특정 유형의 MiTM 공격이 열립니다. 조심해
Craig

1

또는 Apache의 구성 옵션을 사용하지 않고 서버 측 언어를 사용하여 처리 할 수 ​​있습니다 (아마도 서버 구성에 액세스 할 수없는 경우).

예를 들어, PHP의 경우 :

if (!isset($_SERVER['HTTPS'])) {
  // put your redirect here
  header('Location: http://myserver.com/public');
}

(단지 알고 있지만 Microsoft IIS에서 ISAPI를 사용하는 경우 요청이 HTTPS를 통해 라우팅 되지 않으면 $ _SERVER [ 'HTTPS'] 변수의 값은 "off"가됩니다)



0

VirtualHost 지시문을 사용한다고 가정하면,

액세스를 거부하는 비 SSL 가상 호스트에 디렉토리 지정 문을 배치하십시오.

그런 다음 액세스 권한을 부여하는 ssl 가상 호스트에 Directory 지시문을 배치하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.