Nginx如何获得Django应用程序的SSL证书

时间:2017-02-15 08:38:21

标签: python django ssl nginx

我有一台运行Ubuntu 16.04的Digitalocean Droplet。它已全部配置好,我可以访问我的网站。但是我一直在努力设置SSL证书(我是网络服务器管理的新手)。

我在名为certificate.crt的文件夹中签署了private.key/var/certs/ CA.

Djang app settings.py启用了以下功能:

CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True

这是我的/etc/nginx/sites-available/example

server {

    listen 80;

    server_name example.co.uk www.example.co.uk;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {

        root /home/user/project_folder;

    }

    location / {

        include proxy_params;

        proxy_pass http://unix:/home/user/project_folder/project.sock;

    }


} 

我已经在Digitalocean网站上进行了大量研究,在这里和google有关如何配置Nginx以使用带有Django的SSL证书,但证明它非常复杂。如果有人能指出我正确的方向,那将是非常棒的。

1 个答案:

答案 0 :(得分:2)

您需要在端口443上为https添加侦听器。 您的nginx配置将如下所示。 django app不需要特别更改

server {

    listen 443;

    server_name example.co.uk www.example.co.uk;

    ssl on;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_certificate /var/certs/certificate.crt;
    ssl_certificate_key /var/certs/private.key;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {

        root /home/user/project_folder;

    }

    location / {

        include proxy_params;

        proxy_pass http://unix:/home/user/project_folder/project.sock;

    }


}