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