Erro no Bootstrap durante a instalação do Discourse: ENOENT - /etc/runit/1.d/letsencrypt

Aqui está uma atualização.

Adicionar isto à seção run na parte inferior do seu app.yml resolverá o problema de fazer com que /usr/local/bin/letsencrypt solicite certificados para DISCOURSE_HOSTNAME e www.DISCOURSE_HOSTNAME.

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

Isto (de alguma forma?) costumava ser suficiente, mas agora, quando o pedido chega para http://www.HOSTNAME/.well-known…, ele é redirecionado para o site não-www em vez de enviar o desafio que deveria enviar. Eu tentei fazer algo como isto:

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

  # Serve o desafio ACME (Let's Encrypt)
  location ^~ /.well-known/acme-challenge/ {
    root /var/www/discourse/public;  # Certifique-se de que isto corresponda à sua webroot do Let's Encrypt
    allow all;
  }

  # Redireciona todo o resto para HTTPS
  location / {
    return 301 https://$host$request_uri;
  }
}

mas não descobri completamente.

Se alguém da equipe estiver ouvindo, seria bom se houvesse um hook do letsencrypt para que isso pudesse ser chamado em um after_letsencrypt. Antes de fazer essas alterações em after_ssl funcionava, mas parece que agora, se fizermos isso, ele é executado após o ssl, mas antes do letsencrypt.

3 curtidas