Ao tentar obter o certificado Vamos criptografar para trabalhar em um servidor local que hospeda conteúdo com proxy reverso, não consigo fazer a exceção local funcionar dentro de um bloco Location
. httpd.conf
snippet:
SSLProxyEngine on
<Location "/">
ProxyPass "https://internal.host/"
ProxyPassReverse "https://internal.host/"
</Location>
Include /etc/apache2/vhosts.d/01_acme.include
Colocar o arquivo 01_acme.include
acima ou abaixo do bloco Location
não tem efeito.
O arquivo 01_acme.include
:
<Location /.well-known/acme-challenge/>
ProxyPass "!"
Alias /run/acme/.well-known/acme-challenge
</Location>
Eu coloquei um único arquivo de texto nesse diretório chamado date
. A tentativa de recuperar esse arquivo resulta em um redirecionamento 301 sem fim para date/index.html/index.html/...
até que o limite de redirecionamento do cliente seja atingido. Os logs mostram que isso é gerado no servidor front-end, o back-end nunca recebe uma solicitação.
Se eu substituir o bloco Local por diretivas independentes, ele funcionará como esperado:
Alias /.well-known/acme-challenge /run/acme/.well-known/acme-challenge
ProxyPass /.well-known/acme-challenge !
De acordo com a documentação ProxyPass , esse método de definir uma exceção deve funcionar. está muito bem de acordo com a configuração da amostra fornecida no final dessa seção. Isso está quebrado ou eu perdi alguma coisa?
Os redirecionamentos podem ser a causa raiz, mas não consigo encontrar nenhuma diretiva de redirecionamento ou reconfiguração neste escopo que poderia estar lançando um 301, e a única menção de index.html em .htaccess
(não há um ) ou arquivos de configuração é o índice do diretório, que eu tentei desabilitar explicitamente com Options -Indexes
sem efeito.