# Avatares, logotipos de sitios y errores de certificados

**URL:** https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335
**Category:** Self-hosting
**Tags:** unsupported-install
**Created:** [22 Mayo, 2020 14:11 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335 "2020-05-22T14:11:36Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 13:39 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/21 "2020-05-25T13:39:44Z")

</div>

Aquí hay un enlace a una de las instancias:  
[https://discourse.mobiusnode.io](https://discourse.mobiusnode.io)

Está apagado. `X-Forwarded-Proto` está en mi bloque de servidor. Por lo tanto, el único elemento (o elementos) que no estoy utilizando, según los enlaces que todos han compartido, es este:

> `# plantillas base utilizadas; se puede reducir para incluir menos funcionalidad por plantillas de contenedor:`  
> `# - "templates/cron.template.yml" # cron ahora está incluido en la imagen base`  
> `- "templates/postgres.template.yml"`  
> `- "templates/redis.template.yml"`  
> `- "templates/sshd.template.yml"`  
> `- "templates/web.template.yml"`  
> `# - "templates/web.ssl.template.yml" # eliminar - https será manejado por nginx externo`  
> ` - "templates/web.ratelimited.template.yml"`  
> `- "templates/web.socketed.template.yml" # <-- Agregado`  
> `# ¿qué puertos exponer?`  
> `# expose: comentar toda la sección`

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 13:43 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/22 "2020-05-25T13:43:59Z")

</div>

Cargué el sitio en 3 navegadores (Edge, Firefox y Chrome móvil) y obtuve un certificado perfectamente válido como anónimo. ¿Cuáles son tus pasos para reproducir esto?

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 13:49 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/23 "2020-05-25T13:49:32Z")

</div>

Regístrate como usuario; una vez registrado y conectado, todo se descontrola y obtengo los errores mencionados anteriormente.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 13:51 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/24 "2020-05-25T13:51:06Z")

</div>

Ok, me registraré como un usuario falso a través de Firefox ahora mismo.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 13:54 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/25 "2020-05-25T13:54:38Z")

</div>

Tus correos electrónicos nunca llegan a mi bandeja de entrada. He intentado reenviarlos sin éxito. ¿Solo están activando cuentas manualmente aquí?

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 13:55 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/26 "2020-05-25T13:55:13Z")

</div>

No. Probablemente fueron a la carpeta de Basura o Spam. No hay quejas de ningún usuario al respecto.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 13:59 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/27 "2020-05-25T13:59:34Z")

</div>

El infierno no se desató aquí. Un problema potencial es que tus correos electrónicos aún contienen el enlace `http://`. Sin embargo, fui redirigido correctamente al sitio https para activar mi cuenta y no veo ningún error relacionado con SSL aquí.

 ![Screenshot_2020-05-25 (50) Inbox SOGo Groupware](https://global.discourse-cdn.com/meta/original/3X/3/3/335d63258a94d7be375036067a518ce1fbd2e2d4.png)

Así que sí, estoy 99% seguro de que tu `force_https` no está habilitado o hay algo muy muy mal con tu instalación que está causando esto.

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 14:01 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/28 "2020-05-25T14:01:27Z")

</div>

Tengo una redirección en mi bloque de servidor, así que no importa qué enlace se muestre allí. Siempre se redirigirá a https.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 14:02 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/29 "2020-05-25T14:02:53Z")

</div>

> [@markcichy](#):
>
> No importa qué enlace se muestre allí.

Eso es donde te equivocas. Si la opción forzar HTTPS está habilitada, Discourse debe enviar todos los enlaces como HTTPS. Cada enlace relacionado con el foro debe cargarse a través de HTTPS. Si sigues haciendo cosas extrañas y no lo haces de la manera sugerida, tendrás que arreglártelas solo. No podemos ayudar más allá de los procedimientos estándar que funcionan.

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 14:04 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/30 "2020-05-25T14:04:57Z")

</div>

Eso no tiene mucho sentido para mí. Si lo desglosamos lógicamente, en esencia estoy haciendo exactamente lo que está destinado a hacer `force-https`, pero con el bloque del servidor.

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 14:08 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/31 "2020-05-25T14:08:11Z")

</div>

Además, cuando activo `force-https`, mi sitio se rompe y los usuarios no pueden autenticarse.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 14:09 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/32 "2020-05-25T14:09:37Z")

</div>

`force_https` no es simplemente una reescritura; internamente hace más que eso. Si quieres que se resuelvan tus problemas, ya se ha proporcionado una solución. Si rechazas la solución, siéntete libre de tomar el asunto en tus propias manos y explorar nuevas vías.

> [@markcichy](#):
>
> Además, cuando activo `force-https`, mi sitio se rompe y los usuarios no pueden autenticarse.

Eso se debe a tu proxy inverso inestable. Tendrás que averiguar qué está mal y hacerlo de la manera correcta. No podemos brindar asistencia con tus propias soluciones.

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 14:31 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/33 "2020-05-25T14:31:57Z")

</div>

Todas las “soluciones” que se han presentado no se ajustan a mi caso de uso específico:

- Servidor remoto (dentro de la misma red) – Creo que todos los ejemplos asumen que Nginx se ejecuta en el mismo servidor que Discourse; yo estoy utilizando `proxy_pass` para acceder a otra IP interna.

¿Por qué he hecho esto? Mayor seguridad y dispersión de recursos. Es la misma razón por la que separo los servicios de dos maneras: mediante contenedores y máquinas virtuales. La documentación sugerida parece favorecer un escenario donde todos los servicios se ejecutan en el mismo servidor.

Imagino que las condiciones descritas anteriormente son bastante comunes. Si alguna de ellas puede utilizarse para acomodar una condición de `proxy_pass`, estaré más que dispuesto a ajustar mis configuraciones en consecuencia. Solo siento que ofrecer una declaración general de “usted se las arregla solo” porque estoy tratando de evitar un escenario de “poner todos los huevos en la misma cesta” es un poco injustificado.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 14:33 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/34 "2020-05-25T14:33:45Z")

</div>

proxy\_pass 192.168.20.10:8080

en Discourse, exponer 192.168.20.10:8080:80

eliminar la plantilla enmascarada.

activar force\_https

Éxito.

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 14:40 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/35 "2020-05-25T14:40:19Z")

</div>

Esto tiene un montón de implicaciones más allá de lo que acabas de escribir, que tendré que investigar; podríamos haber empezado por ahí. 😉

Preguntas inmediatas:

1. ¿En app.yml cambiar el puerto de escucha predeterminado a 8080?
2. ¿Qué pasa con SSL 443? ¿Dejar 443?
3. ¿Eliminar la redirección en el puerto 80 del bloque de servidor de Nginx?
4. ¿Importa el punto #3 si solo estoy cambiando el `proxy_pass` en el lado interno? ¿Probablemente no? ¿Solo estoy reencaminando al 8080?
5. La pregunta más importante: ¿por qué? ¿Por qué cambiar a 8080 desde 80 marcaría alguna diferencia?
6. ¿Mantener todas las demás plantillas activas? ¿Solo comentar `socketed`?

Gracias por tu ayuda y paciencia.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 14:44 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/36 "2020-05-25T14:44:49Z")

</div>

> [@markcichy](#):
>
> ¿En app.yml cambiar el puerto de escucha predeterminado a 8080?

Esa es tu preferencia; lo escribí como ejemplo. También puedes optar por exponer el puerto 80.

> [@markcichy](#):
>
> ¿Qué hay de SSL en el puerto 443? ¿Dejar el 443?

No hay beneficio ni sentido en habilitar SSL en una red local.

> [@markcichy](#):
>
> ¿Eliminar la redirección del puerto 80 en el bloque de servidor de Nginx?

Eso debe existir.

```plaintext
server {
    listen 80;
    server_name discourse.example.com;
    return 301 https://example.com$request_uri;
}

```

> [@markcichy](#):
>
> ¿Importa el punto #3 si solo estoy cambiando el `proxy_pass` en el lado interno? ¿Probablemente no? ¿Solo estoy reencaminando al puerto 8080?

Eso es exactamente lo que está ocurriendo: estás reenviando todas las solicitudes recibidas por tu proxy/ingress a un backend interno en el puerto 8080 (es decir, Discourse).

> [@markcichy](#):
>
> La gran pregunta: ¿por qué? ¿Por qué marcaría la diferencia cambiar de 80 a 8080?

Ya se respondió en el punto #1: fue una preferencia personal. Siéntete libre de usar el puerto que más te guste.

> [@markcichy](#):
>
> ¿Mantener activadas todas las demás plantillas? ¿Solo comentar `socketed`?

Específicamente no necesitas nada relacionado con sockets o SSL en el servidor interno. SSL debe terminarse correctamente en el proxy inverso.

Nota: la mayor parte es una preferencia personal basada en la implementación para clientes.

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 14:55 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/37 "2020-05-25T14:55:44Z")

</div>

Vale. Gracias por los comentarios.

Aquí está mi bloque de servidor Nginx, para tu información:

> `server {`  
> `# ssl`  
> `listen 443 ssl http2;`  
> `listen [::]:443 ssl http2;`
> 
> ```
> server_name discourse.mobiusnode.io;
> 
> location / {
> # tráfico http
> proxy_pass http://192.168.86.108;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header Host $http_host;
> proxy_http_version 1.1;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header X-Forwarded-Proto https;
> proxy_set_header Upgrade $http_upgrade;
> proxy_set_header Connection "upgrade";
> 
> }
> 
> `ssl on;`
> `ssl_certificate /path/to/certificate/domain.io/fullchain.pem; # gestionado por Certbot`
> `ssl_certificate_key /path/to/certificate/domain.io/privkey.pem; # gestionado por Certbot`
> 
> `ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';`
> `ssl_protocols TLSv1.2;`
> `ssl_prefer_server_ciphers on;`
> `ssl_session_cache shared:SSL:10m;`
> 
> `add_header Strict-Transport-Security "max-age=63072000;";`
> `ssl_stapling on;`
> `ssl_stapling_verify on;`
> 
> `client_max_body_size 0;`
> 
> ```
> 
> }
> 
> `server {`  
> `if ($host = discourse.mobiusnode.io) {`  
> `return 301 https://$host$request_uri;`  
> `} # gestionado por Certbot`
> 
> `listen 80;`  
> `listen [::]:80;`
> 
> `server_name discourse.mobiusnode.io;`  
> `return 404; # gestionado por Certbot`
> 
> }

---

<div class="post-metadata">

### Author: ![markcichy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markcichy/32/181423_2.png) [@markcichy](https://meta.discourse.org/u/markcichy)
#### Post date: [25 Mayo, 2020 14:59 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/38 "2020-05-25T14:59:38Z")

</div>

El comportamiento que estoy experimentando ocurre bajo las condiciones mencionadas anteriormente.

El inicio de app.yml se ve así:

> `## este es la plantilla de contenedor Docker Discourse todo-en-uno, independiente`  
> `##`  
> `## Después de realizar cambios en este archivo, DEBES reconstruir`  
> `## /var/discourse/launcher rebuild app`  
> `##`  
> `## ¡TEN *MUCHO* CUIDADO AL EDITAR!`  
> `## ¡LOS ARCHIVOS YAML SON SUPER SENSIBLES A ERRORES EN ESPACIOS EN BLANCO O ALINEACIÓN!`  
> `## visita http://www.yamllint.com/ para validar este archivo según sea necesario`
> 
> `templates:`  
> `- "templates/postgres.template.yml"`  
> `- "templates/redis.template.yml"`  
> `- "templates/web.template.yml"`  
> `- "templates/web.ratelimited.template.yml"`  
> `## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)`  
> `#- "templates/web.ssl.template.yml"`  
> `#- "templates/web.letsencrypt.ssl.template.yml"`
> 
> `## ¿Qué puertos TCP/IP debe exponer este contenedor?`  
> `## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,`  
> `## consulta https://meta.discourse.org/t/17247 para obtener detalles`  
> `expose:`  
> `- "80:80" # http`  
> `- "443:443" # https`
> 
> `params:`  
> `db_default_text_search_config: "pg_catalog.english"`
> 
> `## Establece db_shared_buffers en un máximo del 25% de la memoria total.`  
> `## se establecerá automáticamente durante el arranque según la RAM detectada, o puedes sobrescribirlo`  
> `db_shared_buffers: "1024MB"`
> 
> `## puede mejorar el rendimiento de ordenamiento, pero aumenta el uso de memoria por conexión`  
> `#db_work_mem: "40MB"`
> 
> `## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)`  
> `#version: tests-passed`

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [25 Mayo, 2020 15:01 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/39 "2020-05-25T15:01:19Z")

</div>

Estás conectando al puerto 80 en el segundo nginx, por lo que este piensa que te estás conectando a http y no a https.

Busca `X-Forwarded-Proto` en el nginx interno y cambia `proxy_set_header X-Forwarded-Proto $thescheme;` por `proxy_set_header X-Forwarded-Proto https;`

o redirige tu tráfico a https `proxy_pass https://192.168.86.108`

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [25 Mayo, 2020 15:02 UTC](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335/40 "2020-05-25T15:02:43Z")

</div>

> [@markcichy](#):
>
> `- "80:80" # http`  
> `- "443:443" # https`

Esta parte necesita ser modificada

[Página anterior](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335.md?page=1)

[Página siguiente](https://meta.discourse.org/t/avatar-site-logos-and-cert-errors/152335.md?page=3)
