Обновление больше не имеет действительного SSL-сертификата

Всем привет,

У меня есть веб-страница Discourse, для которой выпущен SSL-сертификат.
Адрес электронной почты указан в файле app.yaml.

Однако сертификат больше не действителен, и мне нужно его обновить.
Команда ./launcher rebuild app не помогает.

Как можно обновить сертификат в данной ситуации?

У вас стоит Cloudflare перед сервером?

Cloudflare отсутствует.

Это сертификат Let’s Encrypt или какой-то другой? Если это другой сертификат, то вам нужно разместить новый сертификат в том же месте, где был старый.

Какой URL вашего сайта?

Это сертификат Let’s Encrypt. Я только что добавил email для Let’s Encrypt при настройке всего сайта. Не могу поделиться URL сайта, но могу предоставить всю необходимую информацию. Discourse обновлен до последней версии.

Let’s Encrypt должен автоматически обновляться, при условии, что соединение не проходит через прокси.

В Chrome отображается значок замка, что указывает на корректность сертификата, однако период действия сертификата уже истёк, и при его просмотре сообщается, что он устарел.

Прокси-сервер не используется.

Неужели нет возможности обновить его вручную?

РЕДАКТИРОВАНИЕ: В Chrome и стандартных сведениях Windows о сертификате указано, что он устарел, тогда как Firefox показывает, что он действителен, и даты корректны.

Я не знаю, какой клиент вы используете, но если вы запустите certbot certificates, он покажет все сертификаты — как истёкшие, так и действующие. Если вы всё ещё используете истёкший сертификат, а у вас есть действующий, установите действующий.

Но, на мой взгляд, это проблема, которую следует решать на community.letsencrypt.org.

Обратите внимание: LetsEncrypt создан для автоматизации продления. Если вы запускаете его с помощью команды certbot manual, то вам придётся вручную продлевать сертификат каждые 60–90 дней. Если вы используете certonly, то после создания сертификата вам придётся установить его самостоятельно.

Я не выбирал приложение для сертификата. Это стандартная установка Discourse, поэтому я даже не знаю, используется ли здесь certbot или acme.sh.

Уважаемый @pbies

Согласно коду:

 exec:
       cmd:
         - cd /root && git clone --branch 2.8.2 --depth 1 https://github.com/Neilpang/acme.sh.git && cd /root/acme.sh
         - touch /var/spool/cron/crontabs/root
         - install -d -m 0755 -g root -o root $LETSENCRYPT_DIR
         - cd /root/acme.sh && LE_WORKING_DIR="${LETSENCRYPT_DIR}" ./acme.sh --install --log "${LETSENCRYPT_DIR}/acme.sh.log"
         - cd /root/acme.sh && LE_WORKING_DIR="${LETSENCRYPT_DIR}" ./acme.sh --upgrade --auto-upgrade

Надеюсь, это поможет… :slight_smile:

Это помогает понять, что скрипт acme используется для установки/обновления. Но я всё ещё не могу найти инструкцию по обновлению сертификата вручную. Должна быть какая-то веб-страница для этого. Позже я попробую зайти в контейнер и выдать новый сертификат на основе этого кода.

Привет, @pbies

Вам также может быть интересно посмотреть на cron, чтобы узнать, какая команда выполняется в файле crontab контейнера:

Например, в вашем основном контейнере приложения:

crontab -l

Удачи!

@neounix
Прежде чем обновить сертификат, я хотел бы узнать, почему в Chrome (в частности, в информации о сертификате для Windows) сертификат больше не действителен (истёк срок действия), а в Firefox сертификат действителен и срок его действия истекает в будущем.

Возможно, нет необходимости вручную обновлять сертификат?

Если вы просто проверяете дату сертификата в браузере, он может отображать старую из-за service worker форума. Я не думаю, что это проблема (хотя я не до конца понимаю, как именно это работает).

Здравствуйте, @pbies

Вы можете настроить свою систему так, как вам угодно.

Когда я это делаю, я всегда настраиваю сертификаты так, как описал в своём посте, потому что это работает легко и без проблем.

Нет необходимости проводить «анализ сертификатов», так как вы можете просто запросить новый бесплатно без каких-либо трудностей или проблем.

Я попробовал, но не могу сказать, сработало ли это. Просто обновил страницу с очисткой кэша (Ctrl+F5) в Chrome, и сертификат теперь действителен. Похоже, дело в кэше…\n\nСпасибо за помощь, ребята!