2012-08-03 6 views
1

SSL을 통해 내 전체 사이트를 암호화하려고합니다. 그러나, 장고 1.4 함께 이렇게 명확한 방법을 찾지 못합니다. 누구든지 해결책을 알고 있습니까?Django에서 https 강제 적용

답변

4

django-secure에서 제공된 것과 같은 미들웨어를 사용하거나 모든 HTTP 요청을 HTTPS로 리디렉션하여 Apache/Nginx/HAProxy 수준에서 처리 할 수 ​​있습니다. 에

+0

+1 비록, 단지 어떻게 당신의 settings.py 파일에서 다음과 같이 수행 할 수 있습니다 서버 수준에서. 그 과정에서 장고를 사용할 이유가 없습니다. –

+0

HTTP와 HTTPS가 혼합되어 있다면 Django 미들웨어가 필요할 것이지만 모든 것이 HTTPS가된다면 서버 레벨에서 처리하는 것이 더 낫습니다. –

+0

논쟁의 여지가 없지만, 그렇다고해도 서버 수준에서 그렇게 할 것이라고합니다. 예를 들어 대부분과 마찬가지로 관리자는 HTTPS를 통해 제공되지만 나머지 사이트는 HTTP입니다. 내 nginx conf에서, 나는 HTTPS를 통해/management// HTTP로 모든 요청을 단순히 리다이렉트한다. 장고는 아직 개입되지 않았고 필요하지도 않습니다. –

2

아파치 + 장고 (1.6)이 여러 가지 방법을 수행 할 수 있지만 간단한 방법은 htaccess로 또는을 httpd.conf 파일에서 수행 할 수있다 : 여기

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URL} 

추가 정보에 대한 링크입니다 그것은에 :

http://wiki.apache.org/httpd/RewriteHTTPToHTTPS

당신이 그들이 '보안 쿠키'로 설정 한 경우에만 HTTPS를 통해 클라이언트가 전송되어 있는지 확인해야합니다 세션 및 CSRF 쿠키가 일반 HTTP 연결을 통해 클라이언트에 의해 유출되지 않습니다 확인하려면 .

CSRF_COOKIE_SECURE = True 
SESSION_COOKIE_SECURE = True 

보안을 장고하려는 소개, SSL/HTTPS (필독) 포함 :

https://docs.djangoproject.com/en/1.6/topics/security/