将SSL添加到Django应用,Ubuntu 16 +,DigitalOcean

时间:2019-04-28 13:42:06

标签: django ssl digital-ocean

我正在尝试根据此tutorial将SSL证书添加到django应用程序中。我可以使用“ https://ebluedesign.online”打开我的网站。但是Web浏览器返回的格式为“由于受信任的证书颁发机构,无法验证证书”。接受消息后,我的页面可以正确显示。

我的nginx文件如下:

upstream app_server {
    server unix:/home/app/run/gunicorn.sock fail_timeout=0;
}

server {
    #listen 80;

    # add here the ip address of your server
    # or a domain pointing to that ip (like example.com or www.example.com)
    server_name ebluedesign.online;

    listen 443 ssl;

    ssl_certificate      /etc/letsencrypt/live/ebluedesign.online/cert.pem;
    ssl_certificate_key   /etc/letsencrypt/live/ebluedesign.online/privkey.pem;

    keepalive_timeout 5;
    client_max_body_size 4G;

    access_log /home/app/logs/nginx-access.log;
    error_log /home/app/logs/nginx-error.log;

    location /static/ {
        alias /home/app/static/;
    }

    # checks for static file, if not found proxy to app
    location / {
        try_files $uri @proxy_to_app;
    }

    location @proxy_to_app {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://app_server;
    }
}
server {
    listen 80;
    listen [::]:80;
    server_name ebluedesign.online;
    return 301 https://$host$request_uri;
}

我的证书也在这里显示:

/etc/letsencrypt/live/ebluedesign.online/...

如何使用SSL证书解决此问题。我通过https://letsencrypt.org/使用免费的SSL。

编辑:

enter image description here

1 个答案:

答案 0 :(得分:1)

奇怪的是,即使您进入文件http://bluedesign.online/,即使您似乎根本没有监听端口80,它也可以正常工作。您是否在nginx中有两个安装文件?您发布的邮件可能没有被使用。

我已经成功地多次阅读了本教程。如果有机会,您可以尝试从头开始使用它:https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04