通过HTTPS服务Django站点

时间:2016-06-11 14:13:30

标签: python django ssl https

我已经在Django建立了一个网站,但我想将其作为HTTPS" (通过端口443加密)。

我已经有了证书,但是如何配置Django来使用它呢?真的可能是Django不支持开箱即用,如果是这样,我应该如何以HTTPS作为服务网站?

服务器是Ubuntu 14.04

1 个答案:

答案 0 :(得分:5)

它与Django无关,但它实际上得到了支持。请按照以下步骤操作:

<强> 1。获得证书 使用letsencrypt因为它是免费的!

<强> 2。更新存储库和安装工具 在终端输入此命令:

sudo apt-get update

如果您还没有git,请通过以下命令安装它:

sudo apt-get install git

第3。设置,

  1. 使用cd

    将目录更改为django项目目录
    cd django_project
    
  2. 运行以下命令:

    git clone https //github.com/letsencrypt/letsencrypt
    

    然后

    cd letsencrypt
    
    ./letsencrypt-auto --help
    
  3. 如果你在这里,这意味着一切正常!所以转到下一步:

    service nginx stop
    

    (如果你使用其他网络服务器试图阻止它们)

    将example.com替换为您的域名:

    ./letsencrypt-auto certonly --standalone -d example.com
    
    sudo nano /etc/nginx/sites-available/django
    

    像这样编辑文件:

    server {
    #listen 80 default_server;
    #listen [::]:80 default_server ipv6only=on;
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    

    server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
    }
    

    现在只需重新启动服务器。