Discourse не удалось обновить сертификат

Это неверно.

  1. Ссылки, которые я приложил в комментарии выше, были из git blame. Вот последняя версия файла (ссылка на соответствующую строку): discourse_docker/templates/web.ssl.template.yml at 247c71a1e45d32b0b814a8e9d5fdaa4faaf727b9 · discourse/discourse_docker · GitHub
  2. Установка нового сайта моего друга была сделана неделю назад. Строка 37 шаблона выше содержит: return 301 https://${DISCOURSE_HOSTNAME}$request_uri;, но в контейнере Discourse Docker как у неё, так и у меня файл /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf содержит return 301 https://<our_discourse_site>;. Обратите внимание, что $request_uri удалён. Что-то вызывает его исчезновение! (Я не знаю, что именно).
  3. Сегодня утром я провёл симуляцию принудительного обновления в рамках расследования. Оно не удалось. Затем я изменил файл /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf. После этого обновление прошло успешно!

На самом деле это не проблема; я просто буду вручную редактировать 20-redirect-http-to-https.conf каждый раз при обновлении Discourse. Для тех, кто наткнулся на этот комментарий, команда для выполнения:

cat > /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf << 'EOF'
server {
  listen 80;
  listen [::]:80;

  location ~ /.well-known {
    root /var/www/discourse/public;
    allow all;
  }

  location / {
    return 301 https://<YOUR_FORUM_ADDRESS>$request_uri;
  }
}
EOF

Я не полностью уверен, что вызывает эту ошибку, но знаю, что изменение конфигурации выше решает проблему. Однако я также модифицировал уведомления, чтобы обновления letsencrypt больше не завершались неудачей без предупреждения — теперь у меня будет заблаговременное оповещение. Просто хотел, чтобы вы знали!

4 лайка