Creando una nueva comunidad: Basic Auth rompe el plugin WP-Discourse

Estoy preparando sitios de Wordpress y Discourse (autoalojados) usando el plugin WP-Discourse.

He habilitado con éxito la autenticación básica HTTP en ambos sitios para evitar que sean accesibles hasta que estén listos para hacerse públicos (bloqueando efectivamente el acceso del público en general, así como de los motores de búsqueda).

Wordpress (información para quienes buscan lograr algo similar)

Discourse

El plugin WP-Discourse funciona bien hasta que se habilita la autenticación básica en el servidor Discourse.

(Editar) Este es el error en el registro del plugin WP-Discourse en el extremo de Wordpress: [2025-02-14 18:20:06] connection.INFO: check_connection_status.failed_to_connect {"error":"wpdc_response_error","message":"Se devolvió una respuesta inválida desde Discourse","http_code":401,"http_body":"<html>\r\n<head>\u003ctitle\u003e401 Authorization Required\u003c/title\u003e\u003c/head\u003e\r\n<body>\r\n<center>\u003ch1\u003e401 Authorization Required\u003c/h1\u003e\u003c/center\u003e\r\n<hr>\u003ccenter\u003enginx\u003c/center\u003e\r\n</body>\r\n</html>\r\n"}

¿Alguna idea sobre cómo excluir las API de requerir autenticación básica HTTP en Discourse?

¡Gracias!

¿Lo has hecho? No estoy completamente seguro de que Discourse funcione detrás de la autenticación básica; lo intenté una vez pero me di por vencido. Parece aún más probable que pueda romper wp-discourse (¡oh, y tenía razón sobre eso!). Si hubieras tenido éxito, no estarías escribiendo este mensaje. :wink:

Para los sitios de staging de Discourse, generalmente solo configuro “login required” y eso mantiene alejados a los motores de búsqueda. Alguien con un inicio de sesión aún puede iniciar sesión, pero eso es lo que generalmente quieres.

Si es inaceptable que tus sitios estén disponibles para cualquier persona, entonces quizás deberías usar un firewall y limitar el acceso a tu IP.

¿Puedes decirle a una autenticación básica que permita el acceso desde la IP de tu servidor Discourse? Quizás: Allow access from one IP, require basic auth from all other sources - Traefik v2 - Traefik Labs Community Forum

Gracias, esta pista me ayudó a resolver el problema. Aquí está la sección de autenticación básica actualizada de app.yml en mi servidor Discourse (no fueron necesarios cambios en el servidor Wordpress):

# autenticación básica
  after_bundle_exec:
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# Permitir el bypass de caché desde localhost"
       to: |
            # Permitir el bypass de la autenticación básica para el plugin WP-Discourse
            geo $authentication {
            default "Credenciales que debes proporcionar.";
            127.0.0.1 "off";
            151.101.3.55/32 "off";
            }
            # Permitir el bypass de caché desde localhost
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic on"
       to: "auth_basic $authentication"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic_user_file /etc/nginx/htpasswd"
       to: "auth_basic_user_file /etc/nginx/htpasswd"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "location = /srv/status {"
       to: "location = /srv/status {
           auth_basic off;"
    - file:
       path: "/etc/nginx/htpasswd"
       contents: |
         alfred:$apr1$jSdLuHyZ$faWxYGjnmLd/zRC6UMsRs1

151.101.3.55 es la dirección IP pública (de ejemplo) de mi servidor Wordpress. WP-Discourse ahora informa:
Una pantalla en blanco muestra el texto con borde verde, "¡Estás conectado a Discord!" (Subtitulado por IA)

2 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.