nginx não pode abrir um arquivo dentro de '/ tmp'

1

Estou tentando automatizar o processo de criptografia do certificado Vamos criptografar. Então, estou tentando usar o método de autenticação webroot. Mas eu encontrei um obstáculo. Ao tentar isolar o que está errado, foi o que fiz.

Na configuração do meu site, adicionei um bloco de localização para o desafio do acme:

location /.well-known/acme-challenge {
    default_type "text/plain";
    alias /tmp/letsencrypt;
}

O diea sendo o script letsencrypt usará /tmp/lestencrypt para armazenar os arquivos necessários. No entanto, para testar isso, criei a subpasta letsencrypt e fiz o chmoded para 777. Em seguida, criei um arquivo chamado test com o conteúdo "testing" e chmoded para o 777.

Agora, se eu tentar acessar domain.com/.well-known/acme-challenge/test , obtenho uma resposta 404. Olhando para o meu log de erro, vejo a linha:

2015/12/11 17:38:06 [error] 26593#0: *11 open() "/tmp/letsencrypt/test" failed (2: No such file or directory), client: x.x.x.x, server: domain.com, request: "GET /.well-known/acme-challenge/test HTTP/1.1", host: "domain.com"

Eu sei que esse arquivo existe e deve ser legível por qualquer pessoa, pois agora eu defini as permissões para 777. Então, por que o nginx não consegue encontrá-lo?

    
por Jonny Barnes 11.12.2015 / 18:48

1 resposta

2

Você digitou incorretamente o comando letsencrypt, isso pode ser o seu problema. Na sua descrição você escreveu 'leSTencrypt' e no log dele 'leTSencrypt'.

Você também pode verificar este erro de soquete de domínio unix nginx Parece que algumas distros usam o diretório / tmp separado para cada serviço por motivos de segurança. Tente colocar seu diretório em um lugar diferente e veja se ele funcionará. Você pode fazer outro 'tmp' com as mesmas permissões, por exemplo %código% e use isso para ver o que acontece.

Outra razão que posso pensar é o seu nginx rodando no ambiente chrooted.

    
por 11.12.2015 / 19:27

Tags