Выпуск/обновление 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.