Error de Bootstrap durante la instalación de Discourse: ENOENT - /etc/runit/1.d/letsencrypt

Aquí tienes una actualización.

Añadir esto a la sección run al final de tu app.yml resolverá el problema de conseguir que /usr/local/bin/letsencrypt solicite certificados para DISCOURSE_HOSTNAME y www.DISCOURSE_HOSTNAME.

- exec: sed -i "s|-d \\${DISCOURSE_HOSTNAME}|-d \\${DISCOURSE_HOSTNAME} -d www.\\${DISCOURSE_HOSTNAME}|g" /usr/local/bin/letsencrypt

Esto (de alguna manera) solía ser suficiente, pero ahora cuando llega la solicitud para http://www.HOSTNAME/.well-known… se redirige al sitio no www en lugar de enviar el desafío que se supone que debe enviar. Intenté hacer algo como esto:

server {
  listen 80;
  listen [::]:80;
  server_name nzarchitecture.net.nz www.nzarchitecture.net.nz;

  # Servir el desafío ACME (Let's Encrypt)
  location ^~ /.well-known/acme-challenge/ {
    root /var/www/discourse/public;  # Asegúrate de que esto coincida con tu webroot de Let's Encrypt
    allow all;
  }

  # Redirigir todo lo demás a HTTPS
  location / {
    return 301 https://$host$request_uri;
  }
}

pero no lo resolví del todo.

Si alguien del equipo está escuchando, sería bueno que hubiera un hook de letsencrypt para que esto pudiera llamarse en un after_letsencrypt. Antes de hacer estos cambios en after_ssl funcionaba, pero parece que ahora si hacemos eso, esto se ejecuta después de ssl, pero antes de letsencrypt.

3 Me gusta