Configuración de Apache Reverse Proxy con algunas exenciones

Configuración de Apache Reverse Proxy con algunas exenciones

Me gustaría instalar Mattermost en mi servidor y que también ejecute el software de alojamiento ISPConfig. ISPConfig tiene un mecanismo para obtener e instalar automáticamente certificados Letsencrypt según el nombre de host. Para ello, Letsencrypt necesita acceso al /.well-knowndirectorio.(Supongo)para comprobar si hay alguna cadena de verificación.

Mi sistema Mattermost se ejecuta en el puerto 8065 y utiliza mi entorno de alojamiento ISPConfig que se ejecuta en el mismo servidor que el proxy inverso para la descarga de SSL.

Estaba siguiendo las instrucciones dehttps://docs.mattermost.com/configure/config-proxy-apache2.htmlque funciona bien para conexiones no cifradas.

Pero tan pronto como intento obtener un certificado SSL, esto ya no funciona. No estoy completamente seguro de lo que está pasando, pero supongo que el código mencionado anteriormente envía TODO el tráfico a mi sistema más importante, mientras que NO debería enviar solicitudes al directorio ./well-known que es necesario para las cosas de letsencrypt.

¿Suena eso razonable? Si es así, ¿cómo puedo eximir al ./well-knowndirectorio de la función de proxy?

(Tal vez esto sea bastante fácil para un experto, pero realmente no sé por dónde empezar, tal vez porque no entiendo completamente cómo funciona este proxy inverso y qué significan exactamente todas las directivas de Apache...)

Aquí hay un fragmento de mis modificaciones actuales a la configuración estándar de 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>

(He robado la modificación anterior dehttps://stackoverflow.com/questions/44651809/no-lets-encrypt-renewal-with-reverse-proxy-in-ispconfig3, pero eso no parece funcionar. ¿Quizás por la <Location />declaración? ¿Pero cómo especificar todo el directorio /sin estar /well-knownen mi <Location>declaración?)

¿Alguna idea sobre cómo resolver mi problema?

Respuesta1

Quizás me estaba dando por vencido demasiado pronto. Creo que descubrí cómo resolver el problema. Además de <Location>, también hay una <LocationMatch>que funciona con expresiones regulares. No soy un experto en expresiones regulares, pero después de probar un poco, descubrí que la siguiente directiva funcionó:

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

Si mi comprensión es correcta, esto coincide con todos los directorios que no comienzan con /.well-known.

información relacionada