Configuração do proxy reverso do Apache com algumas isenções

Configuração do proxy reverso do Apache com algumas isenções

Gostaria de instalar o Mattermost em meu servidor que também executa o software de hospedagem ISPConfig. ISPConfig possui um mecanismo para obter e instalar automaticamente certificados Letsencrypt com base no nome do host. Para isso, Letsencrypt precisa de acesso ao /.well-knowndiretório(Eu acho)para verificar alguma string de verificação.

Meu sistema Mattermost está rodando na porta 8065 e usa meu ambiente de hospedagem ISPConfig rodando no mesmo servidor que o proxy reverso para descarregamento de SSL.

Eu estava seguindo as instruções emhttps://docs.mattermost.com/configure/config-proxy-apache2.htmlque está funcionando bem para conexões não criptografadas.

Mas assim que tento obter um certificado SSL, isso não funciona mais. Não tenho certeza do que está acontecendo, mas acho que o código mencionado acima está fazendo proxy de TODO o tráfego para o meu sistema mais importante, embora NÃO deva fazer proxy de solicitações para o diretório ./well-known que é necessário para o material letsencrypt.

Isso parece razoável? Em caso afirmativo, como posso isentar o ./well-knowndiretório da função de proxy?

(Talvez isso seja bastante fácil para um especialista, mas eu realmente não sei por onde começar - talvez porque eu não entenda completamente como esse proxy reverso funciona e o que todas as diretivas do Apache significam exatamente...)

Aqui está um trecho das minhas modificações atuais na configuração padrão do apache vhost:

ServerAdmin [email protected]
ProxyPreserveHost On
RewriteEngine On

RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]

ProxyPass /.well-known/ !  # <-- I inserted this line, but this does not seem to work...

<Location />
      Require all granted
      ProxyPass http://127.0.0.1:8065/
      ProxyPassReverse http://127.0.0.1:8065/
      ProxyPassReverseCookieDomain 127.0.0.1 mattermost.mydomain.com
</Location>

(Eu roubei a modificação acima dehttps://stackoverflow.com/questions/44651809/no-lets-encrypt-renewal-with-reverse-proxy-in-ispconfig3, mas isso não parece funcionar. Talvez por causa da <Location />declaração? Mas como especificar o diretório inteiro /sem /well-knownna minha <Location>declaração?)

Alguma idéia de como resolver meu problema?

Responder1

Talvez eu estivesse desistindo muito cedo. Acho que descobri como resolver o problema. Além de <Location>, há também um <LocationMatch>que funciona com expressões regulares. Não sou um especialista em expressões regulares, mas depois de algumas brincadeiras, descobri que a seguinte diretiva funcionou:

<LocationMatch "^(?:(?!\/\.well-known).)*$">

Se meu entendimento estiver correto, isso corresponde a todos os diretórios que não começam com /.well-known.

informação relacionada