letsencrypt独立认证没有出现在GET请求上

时间:2017-03-12 01:03:20

标签: django nginx ubuntu-16.04 lets-encrypt

我能够在路径/etc/letsencrypt/{{mywebdomain}}/下创建认证,并在我的服务器下设置我的nginx服务器的ssl_certssl_cert_key绝对路径文件位置。

当我运行命令sudo nginx -t时,我收到一个成功的配置输出,并且nginx服务器正在Django的反向代理中运行而没有任何问题。但是当我在Chrome浏览器上访问我网站的根目录时,我收到的是“http://website.com”而不是“https://website.com”。

如果有人能够使用gunicorn-django-nginx配置正确加密其域内容,请指出正确的方向。

我的网站代码段:

upstream app_server {
    unix:/home/me/Documents/masterdomain/src/portfolio_revamp.sock;
}

 server {
    client_max_body_size 4M;
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;
    listen www.mysite.com:80;

    server_name example.com www.example.com;
                http://example.com;

    ssl_certificate 
             /etc/letsencrypt/live/mysite.com/fullchain.pem;
    ssl_certificate_key 
            /etc/letsencrypt/live/mysite.com/privkey.pem;

    root /home/akeem/Documents/SpencerMaster/src;

    index templates/home.html templates/main.html;

    location / {
            proxy_pass
  http://unix:/home/me/Documents/masterdomain/src/portfolio_revamp.sock;
            alias /home/me/Documents/master/templates/home.html;
    }

    location ~ /.well-known {
            allow all;
    }

    location /static {
            autoindex on;
            alias /home/me/Documents/masterdomain/static;
    }

    location /media {
            autoindex on;
            alias /home/me/Documents/masterdomain/media;
    }

  }

如果有所不同,我正在运行xenial ubuntu 16.04服务器。

1 个答案:

答案 0 :(得分:0)

我认为问题在于您没有重定向到HTTPS - 除非您专门输入https://example.com,否则您将被定向到标准http://example.com

我使用this guide from DigitalOcean推荐两个服务器块。在你的情况下,它看起来像:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name mysite.com www.mysite.com;
    return 301 https://$server_name$request_uri;
}

server {
    client_max_body_size 4M;
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    No server_name required here

    ... Everything else ...
}