O uso do nginx não pode completar o desafio acme/acessar arquivos em novos locais

O uso do nginx não pode completar o desafio acme/acessar arquivos em novos locais

Gostaria que meu aplicativo flask fosse uma API eventualmente e o executasse em um servidor Windows. Eu possuo um domínio no google domains, adicionei um DNS de api.(mydomain) usando o endereço IP do computador que ele irá rodar como servidor. Eu queria que a API fosse SSL e https e tenho usado garçonete -> nginx -> win-acme

Aqui está meu diretório: C:\Users\Wreck\Documents\Flask\acme-challenge , Dentro desta pasta fiz um test.txt apenas com texto puro.

Na pasta Flask, tenho um aplicativo flask que, por enquanto, apenas imprime Olá, mundo.

Meu primeiro passo é começar como garçonete:

(venv) C:\Users\Wreck\Documents\Flask>waitress-serve --listen=*:5000 flaskappv1:app
INFO:waitress:Serving on http://[::]:5000
INFO:waitress:Serving on http://0.0.0.0:5000

Olá Mundo! é exibido no host local.

Então eu configurei o nginx, depois de horas de testes, ainda não entendi por que retornar o arquivo de texto do acme-challenge ainda produz um erro. Aqui está o meu código:

error_log  logs/error.log;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;
    
    
    server {
        listen 80;
        server_name api.rootmusic.app;

        location / {
            proxy_pass http://127.0.0.1:5000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location ^~ /.well-known/acme-challenge/ {
            root C:/Users/Wreck/Documents/Flask/acme-challenge/;
            allow all;
            default_type "text/plain";
            try_files $uri =404;
        }
    }
}

E aqui estão minhas saídas:

C:\WINDOWS\system32>curl http://api.rootmusic.app/.well-known/acme-challenge/test.txt
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

C:\WINDOWS\system32>curl http://api.rootmusic.app/
Hello World!

Desativei o Windows Defender. Eu encaminhei a porta das portas IP 80 e 5000 do meu computador servidor. Também defini permissões de entrada para o firewall do Windows para as portas 80 e 5000.

Acho que pode ser algo com minhas permissões para ler e visualizar, mas no gerenciador de tarefas o nginx é executado no Wreck, que sou eu e tenho certeza que sou um usuário administrador e verifiquei as permissões de leitura e gravação para toda a estrutura do arquivo.

Se isso for útil, este é o erro que recebo quando tento usar win-acme para obter HTTPS para API.(domínio)

 Plugin Manual generated source api.rootmusic.app with 1 identifiers
 Plugin Single created 1 order
 Cached order has status invalid, discarding
 [api.rootmusic.app] Authorizing...
 [api.rootmusic.app] Authorizing using http-01 validation (SelfHosting)
 [api.rootmusic.app] Authorization result: invalid
 [api.rootmusic.app] {"type":"urn:ietf:params:acme:error:unauthorized","detail":"(my ip): Invalid response from http://api.rootmusic.app/.well-known/acme-challenge/uQdTJeSYMKLUy9_7dIgEzLZQUay11eYUxvKNcxNPPv4: 404","status":403,"instance":null}
 [api.rootmusic.app] Deactivating pending authorization

Como você deve ter adivinhado, sou muito novo em administração de sistemas. Mas obrigado por ler até aqui. Se você tiver sugestões sobre como mudar de programa ou alguma maneira de fazer isso mais facilmente, me avise, porque estou completamente preso. Comecei com o IIC, mas mudei para o nginx porque não consegui descobrir.

Mas sim, por que o nginx não consegue ler arquivos no local acme-challenge? Presumo que é isso que também está impedindo o win-acme.

informação relacionada