GitLab не обновляет сертификат Let’s Encrypt. Обновление через certbot

Если решите как-то реализовать написанное, то все действия вы производите на свой страх и риск!

Раньше натыкался на то, что сертификаты Let’s Encrypt не обновляются нормально.
В этот раз gitlab при реконфигурации выдал:

(letsencrypt::http_authorization line 6) had an error: KeyError: acme_certificate[staging] (letsencrypt::http_authorization line 43) had an error: KeyError: key not found: "token"

Чистил кэши, проверял доступности. В итоге забил на это всё и вынес обновление сертификатов просто через certbot’a:

0. Устанавливаем certbot, как удобно.

1. Выключаем работу с сертификатами letsencrypt в /etc/gitlab/gitlab.rb

letsencrypt['enable'] = false

2. Запускаем вручную первый заход, чтобы понять что ничего не мешает нигде

sudo certbot certonly --webroot -w /var/opt/gitlab/nginx/www -d ваш-домен --email user@ваш-домен.ru --agree-tos --non-interactive

3. После успешного получения сертификатов в /etc/gitlab/gitlab.rb прописываем пути до сертификата и ключа

nginx['ssl_certificate'] = '/etc/letsencrypt/live/ваш-домен/fullchain.pem'
nginx['ssl_certificate_key'] = '/etc/letsencrypt/live/ваш-домен/privkey.pem'

4. Пересобираем и перезапускаем nginx. В дальнейшем при обновлении сертификатов достаточно будет перезапуска nginx.

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart nginx

5. Добавляем в cron

certbot renew --quiet && gitlab-ctl restart nginx

Категории: Записи по DevOps Записи по Linux

Метки:

- 28.04.2026           Просмотры: 73

Заметки в Telegram

Добавить комментарий

Вы можете оставить комментарий и указать никнейм (выдуманное имя/псевдоним). Поле со звездочкой и капча обязательны. Комментарии одобряются вручную. Нажимая "Отправить комментарий" Вы соглашаетесь с условиями Пользовательского Соглашения и Политики конфиденциальности.