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

**URL:** <https://meta.discourse.org/t/discourse-failure-to-renew-certificate/385148>\
**Category:** Bug\
**Tags:** letsencrypt\
**Created:** [09.Октябрь.2025 15:38:48 UTC](https://meta.discourse.org/t/discourse-failure-to-renew-certificate/385148 "2025-10-09T15:38:48Z")\
**Posts on this page:** 1\
**Showing post:** 19

<div class="post-metadata">

**Author:** ![cedric\_chin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cedric_chin/32/536774_2.png) [@cedric\_chin](https://meta.discourse.org/u/cedric_chin)\
**Post date:** [22.Декабрь.2025 14:45:43 UTC](https://meta.discourse.org/t/discourse-failure-to-renew-certificate/385148/19 "2025-12-22T14:45:43Z")

</div>

Это неверно.

1. Ссылки, которые я приложил в комментарии выше, были из `git blame`. Вот последняя версия файла (ссылка на соответствующую строку): [discourse\_docker/templates/web.ssl.template.yml at 247c71a1e45d32b0b814a8e9d5fdaa4faaf727b9 · discourse/discourse\_docker · GitHub](https://github.com/discourse/discourse_docker/blob/247c71a1e45d32b0b814a8e9d5fdaa4faaf727b9/templates/web.ssl.template.yml#L37)
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. Для тех, кто наткнулся на этот комментарий, команда для выполнения:

```plaintext
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 больше не завершались неудачей без предупреждения — теперь у меня будет заблаговременное оповещение. Просто хотел, чтобы вы знали!

---

_[View the full topic](https://meta.discourse.org/t/discourse-failure-to-renew-certificate/385148)._
