Avatares, logotipos de sitios y errores de certificados

¡Hola!

He configurado servidores de Discourse en unas 5 instancias y todas parecen presentar un comportamiento extraño; no estoy seguro de si se trata realmente de un error o si alguien más ha experimentado lo mismo.

Pasos para reproducir

  • La configuración del servidor se realiza sin problemas.
  • El recorrido del asistente es correcto; todas las imágenes se cargan y muestran como se espera.
  • El usuario recibe el enlace de registro, hace clic para seguirlo y el proceso de registro se completa sin inconvenientes.
  • (Aquí es donde las cosas se complican) Al iniciar sesión, los logotipos del sitio aparecen rotos y solo se muestran los títulos en texto.
  • El usuario no puede subir ni asignar un avatar personalizado.
  • El certificado del sitio indica que no es seguro.
  • Por alguna razón, esto SOLO afecta al navegador utilizado para registrarse y tiene una tasa de fallo mucho mayor en Chrome.

Solución de problemas

  • Hemos sugerido a los usuarios que borren la caché y las cookies del navegador; sigue sin funcionar.
  • Hemos pedido a los usuarios que reinstalen sus navegadores, principalmente Chrome; sigue sin funcionar.
  • Hemos sugerido que utilicen una identidad alternativa en Chrome o que prueben otro navegador (Safari, Firefox, etc.); ¡funciona!

No tenemos ni idea de por qué funciona el último punto y por qué la identidad de origen del registro está afectada. No sería viable pedir a nuestros usuarios (unos 600-700) que cierren sesión en su identidad de Chrome y vuelvan a iniciarla, si, por alguna razón, esa fuera la solución.

¿Alguna idea?

Saludos,
Mark

¿Es una instalación estándar de 30 minutos? ¿O hay algo personalizado aquí?

¿Habilitaste force_https en la configuración del sitio para ver si eso soluciona el problema?

No puedo replicar tus pasos en mi sandbox en la última rama, por lo que sería muy útil si pudieras compartir un enlace a una de las instancias afectadas.

Hola Bahnu:

  • Instalación estándar de 30 minutos
  • Nada personalizado
  • No he habilitado force_https, pero como mencioné, este problema solo afecta al navegador utilizado para el registro

Prueba a habilitar force_https. Estoy casi seguro de que eso lo solucionará para ti.

1 me gusta

De acuerdo. Todas las instancias de instalación reciben su certificado desde un proxy inverso de Nginx que NO es la misma máquina. ¿force_https seguirá marcando la diferencia?

Así que no es una instalación estándar. Dijiste que lo era.

Si Discourse está detrás de un proxy inverso correctamente configurado, force_https definitivamente marcará la diferencia. La configuración esencialmente le indica a Discourse que cargue todos los recursos y activos a través de HTTPS.

De acuerdo, mis disculpas.

¿Estamos hablando de force_https en app.yml o en el bloque de servidor de Nginx?

Ya estoy pasando el tráfico correctamente, pero no veo la propiedad en el archivo yml.

Ninguno de los dos.

force_https es una configuración del sitio que debes habilitar en el área de administración.

¿Podría dejarme bloqueado?

A menos que tu proxy inverso esté configurado incorrectamente, no hay absolutamente nada de qué preocuparse aquí.

Si no estás seguro de la configuración del proxy inverso, echa un vistazo a esta configuración y compárala con la tuya

Sí, por cierto. Bloquéame. Habilitar force_https solucionó el problema de las imágenes, PERO hizo imposible autenticarse desde navegadores con una nueva sesión. La sesión existente funciona bien, pero en el momento en que cierras sesión, no puedes volver a entrar.

Hay algo mal con tu proxy inverso. Tendrás que revisar su configuración para asegurarte de que todo esté configurado correctamente.

Acabo de hacerlo. Ya he configurado todo efectivamente en mi bloque de servidor tal como sugiere el artículo. Probablemente por eso las sesiones en perfiles alternativos o navegadores funcionan con normalidad después del registro/inicio de sesión inicial.

El único elemento en el que mi configuración difiere es que no estoy utilizando templates.yml.

Esto va a requerir MUCHA más investigación.

Vale. Es raro. No he cambiado nada. Todas las imágenes funcionan perfectamente. Punto.

Aunque sigo recibiendo el certificado inválido solo en el navegador durante la instalación inicial del usuario.

Eso podría deberse a la caché del navegador o a un certificado mal configurado. ¿Obtuviste un SSL de Let’s Encrypt o alguno otro?

Es LetsEncrypt a través de Certbot. El certificado es válido. Creo que es la caché del navegador.

Intenta registrarte en modo incógnito. ¿Aún así recibes un error?

Y hay algo que me parece sospechoso. ¿Estás utilizando algún tipo de autenticación externa? (inicio de sesión con redes sociales / SSO, etc.)

No. No hay autenticación externa. Probé en modo incógnito. Nada. El mismo resultado.
Debe ser algo en el bloque del servidor. Investigaré un poco más tarde.

¿Podrías compartir un enlace a una de esas instalaciones?

¿Basaste tu configuración de nginx en la que se enumera aquí?

Asegúrate de enviar X-Forwarded-Proto.

4 Me gusta