让我们使用uWSGI

时间:2017-05-18 03:49:41

标签: django ssl nginx uwsgi lets-encrypt

我尝试按these instructions here为我的域安装SSL证书。但是,这些说明似乎假设nginx是唯一的服务器。我正在使用带有uwsgi的nginx。我对两者都很陌生。我不相信uwsgi有一个webroot'(?)。

我的django应用程序来自/home/me/myapp。我在那里创建了.well-known目录,如下所示:/home/me/myapp/.well-known

使用此命令:

sudo certbot certonly --webroot --webroot-path=/home/me/myapp -d myappdomain.com -d www.myappdomain.com

我收到此错误:

   Domain: www.myappdomain.com
   Type:   unauthorized
   Detail: Invalid response from
   http://www.myappdomain.com/.well-known/acme-challenge/HOjaeQfDlYQzAYfwGLltammjg6kMnwChV-Bc9BL2bSA:

如果我在NGINX后面有uWSGI,我该如何正确地服务.well-known目录?

2 个答案:

答案 0 :(得分:2)

可以为服务.well-known配置NGINX,这样就无需关心uWSGI或其他代理服务器。

此配置将有所帮助。它侦听80端口并从位置根提供.well-known文件,这与certbot的webroot插件相同。其他请求将被重定向到域的HTTPS,如需要。

server {
    listen 80;
    server_name myappdomain.com www.myappdomain.com;

    location /.well-known/ {
        root /home/me/myapp;
        break;
    }

    location / {
        return 301 https://$server_name$request_uri;
    }
}

答案 1 :(得分:0)

我遇到了同样的问题,这就是我解决的问题。

location /.well-known {
    alias /home/user/webapp/.well-known;
}

我的服务器.well-known位于/var/www/html/.well-known 所以,在我的nginx配置文件

location /.well-known {
    alias /var/www/html/.well-known;
}

.well-known

验证sudo find / -type d -name '.well-known'的位置