Выпуск/обновление SSL-сертификата (cert)
Команда cert
выпускает или обновляет сертификат Let's Encrypt для домена из файла .env
(APP_URL
) и при необходимости автоматически включает SSL-конфигурацию Nginx.
Использование
Linux
./doqa cert
Требования
- DoQA должна быть установлена.
- В
.env
должен быть указан домен без протокола:APP_URL=example.com
. Домен устанавливается командойdoqa domain --set={ваш_домен_без_протокола}
. - Домен должен указывать на текущий сервер (актуальная запись DNS A).
- Порт 80 (и 443) должен быть доступен извне. Во время выпуска команда временно остановит сервисы DoQA, чтобы освободить порты 80/443 для
certbot
.
Что делает команда
- Останавливает сервисы DoQA, запускает
certbot
в контейнере Docker (standalone, с пробросом портов 80/443) для выпуска/обновления сертификата. - Копирует выданные файлы в
box/nginx/ssl
:fullchain.pem
иprivkey.pem
. - Обновляет маркер времени последнего обновления в
box/letsencrypt/.last_renew
. - Запускает сервисы DoQA.
Флаги
--yes
— подтвердить без вопросов и использовать значения из.env
.--auto
— авто-режим (удобно для cron): обновлять только если прошло 75 дней с момента последнего успешного выпуска.--schedule
— создать задачу автообновления (Linux cron). Добавляет задание, которое периодически запускаетcert --yes --auto
.--unschedule
— удалить задачу автообновления (Linux cron). На других ОС настройте расписание вручную.
Примеры
- Первый выпуск сертификата (интерактивно):
Linux
./doqa cert
- Обновление без вопросов:
./doqa cert --yes
- Фоновый запуск в cron (Linux): создаст расписание автообновления.
./doqa cert --schedule
- Ручная проверка в крон-режиме (выполнит только если >= 75 дней):
./doqa cert --yes --auto
- Удалить автообновление (Linux):
./doqa cert --unschedule
Замечания
- Если используете внешний реверс‑прокси, убедитесь, что порт 80 доступен для HTTP‑01 проверки Let's Encrypt на этом сервере, либо выпустите/пробросьте сертификат на уровень Nginx DoQA самостоятельно.
- Если вы поменяли домен, после этого примените новые сертификаты вручную или пере‑выпустите их командой
domain
→cert
.