[컴] Django + uWSGI + nginx 에서 ssl 관련 설정



아래 글이 가장 내 상황과 맞는 듯 하여, 아래 글을 따라 설정하는 과정을 적어본다.

사용한 OS : Ubuntu 14.04.3
nginx version: nginx/1.4.6 (Ubuntu)


OpenSSL 을 이용한 key 및 인증서 생성

키와 인증서의 생성은 아래 링크를 참고하자.


nginx.conf 수정

이제 자신이 사용하는 nginx.conf 를 열자.

# redirection , 이부분은 redirection 을 위해 사용했다.
server {
    listen 8000;
    
    return 301 https://localhost/;  # port 8000 으로 들어오는 모든 request 를 status 301 로 해서 https://localhost 로 보내겠다.
}


server {
    listen  443 ssl;
    
    ############################ 이부분을 추가했다.
    ssl on;
    ssl_certificate /path/to/cert/dummy-cert.pem;
    ssl_certificate_key /path/to/cert/dummy-key.pem;
    ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers          HIGH:!aNULL:!MD5;
    ############################

    server_name localhost;
    

    ...

    ########################
    # What is this for? : 이부분은 정확히 왜 필요한지 몰라서 쓰지 않았다.

    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 10;
        proxy_read_timeout 10;
        proxy_pass http://localhost:8000/;
    }

    ...
}


nginx restart

이제 nginx 를 restart 하면 된다.
$sudo /etc/init.d/nginx restart



nginx ssl 관련 설정

nginx 에 ssl 을 설정한 설정 예가 있다.


nginx 설정 중 ssl 관련 설정을 만들어주는 page 이다.


Django 설정

settings.py 설정
  1. CSRF_COOKIE_SECURE = True
  2. SESSION_COOKIE_SECURE = True
  3. ALLOWED_HOSTS 설정




Django + uWSGI + Nginx



댓글 없음:

댓글 쓰기