Deixar criptografar certbot não pode concluir a verificação devido à configuração do servidor Nginx

2

Para um aplicativo, preciso da seguinte linha no meu bloco location :

rewrite ".*" /server.php break;

Isso faz com que o certbot não consiga verificar o domínio. Para instalar o certificado SSL, comentei que a linha e o certbot funcionavam bem. Agora, o problema é que a renovação é automatizada e falhará se eu descomentar a linha.

Existe uma maneira de ter um location dedicado apenas para a verificação do Let's Encript? Se sim, o que?

Aqui está o bloco completo com a linha do problema comentada:

location / { 
    try_files $uri $uri/ =404; 
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    include fastcgi_params;
    fastcgi_param USE_INSTANCE 'd1';
    fastcgi_param SCRIPT_FILENAME $request_filename;
    #rewrite ".*" /server.php break; 
}

Se você se perguntar por que não estou limitando o padrão de correspondência a ~ \.php$ , é porque a configuração pertence ao meu ponto de extremidade api.host.com , que receberá apenas solicitações que precisam ser roteadas para um script PHP.

    
por Majid Fouladpour 14.04.2018 / 04:54

1 resposta

2

Eu criei um bloco location separado para o certbot.

location /.well-known/acme-challenge/ {
    root /var/www;
    try_files $uri =404;
}

(Note que eu uso o mesmo documento raiz para cada host virtual, que está fora da raiz normal do documento, então o certbot nunca escreve nada nos diretórios reais dos sites).

    
por 14.04.2018 / 05:00