我有一台运行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证书,但证明它非常复杂。如果有人能指出我正确的方向,那将是非常棒的。
答案 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;
}
}