Ecco un aggiornamento.
Aggiungere questo alla sezione run in fondo al tuo app.yml risolverà il problema di ottenere /usr/local/bin/letsencrypt per richiedere certificati per 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
Questo (in qualche modo?) era sufficiente, ma ora quando arriva la richiesta per http://www.HOSTNAME/.well-known… viene reindirizzata al sito non www anziché inviare la sfida che dovrebbe inviare. Ho provato a fare qualcosa del genere:
server {
listen 80;
listen [::]:80;
server_name nzarchitecture.net.nz www.nzarchitecture.net.nz;
# Serve ACME challenge (Let's Encrypt)
location ^~ /.well-known/acme-challenge/ {
root /var/www/discourse/public; # Assicurati che corrisponda alla tua webroot Let's Encrypt
allow all;
}
# Reindirizza tutto il resto a HTTPS
location / {
return 301 https://$host$request_uri;
}
}
ma non ho capito bene.
Se qualcuno del team sta ascoltando, sarebbe utile se ci fosse un hook letsencrypt in modo che questo possa essere chiamato in un after_letsencrypt. Prima di apportare queste modifiche in after_ssl funzionava, ma sembra che ora se lo facciamo questo viene eseguito dopo ssl, ma prima di letsencrypt.