Hier ist ein Update.
Wenn Sie dies zum run-Abschnitt am Ende Ihrer app.yml hinzufügen, wird das Problem behoben, dass /usr/local/bin/letsencrypt Zertifikate für DISCOURSE_HOSTNAME und www.DISCOURSE_HOSTNAME anfordert.
- exec: sed -i "s|-d \\${DISCOURSE_HOSTNAME}|-d \\${DISCOURSE_HOSTNAME} -d www.\\${DISCOURSE_HOSTNAME}|g" /usr/local/bin/letsencrypt
Dies war (irgendwie?) früher ausreichend, aber jetzt, wenn die Anfrage für http://www.HOSTNAME/.well-known… eingeht, wird sie zur Nicht-www-Seite umgeleitet, anstatt die Herausforderung zu senden, die sie senden soll. Ich habe versucht, so etwas zu tun:
server {
listen 80;
listen [::]:80;
server_name nzarchitecture.net.nz www.nzarchitecture.net.nz;
# ACME-Herausforderung bedienen (Let's Encrypt)
location ^~ /.well-known/acme-challenge/ {
root /var/www/discourse/public; # Stellen Sie sicher, dass dies mit Ihrem Let's Encrypt Webroot übereinstimmt
allow all;
}
# Alles andere zu HTTPS umleiten
location / {
return 301 https://$host$request_uri;
}
}
aber es nicht ganz herausgefunden.
Wenn jemand vom Team zuhört, wäre es gut, wenn es einen Letsencrypt-Hook gäbe, damit dies in einem after_letsencrypt aufgerufen werden könnte. Bevor diese Änderungen in after_ssl vorgenommen wurden, funktionierte es, aber jetzt scheint es, dass dies nach SSL ausgeführt wird, aber vor Letsencrypt.