我试图遵循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目录提供服务器?

最佳答案

NGINX可以配置为服务.well-known,通过这种方式,无需在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;
    }
}

10-04 13:44