Тема
Выпуск/обновление SSL-сертификата (cert)
Команда cert выпускает или обновляет сертификат Let's Encrypt для домена из файла .env (APP_URL) и при необходимости автоматически включает SSL-конфигурацию Nginx.
Использование
bash
./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). На других ОС настройте расписание вручную.
Примеры
- Первый выпуск сертификата (интерактивно):
bash
./doqa cert- Обновление без вопросов:
bash
./doqa cert --yes- Фоновый запуск в cron (Linux): создаст расписание автообновления.
bash
./doqa cert --schedule- Ручная проверка в крон-режиме (выполнит только если >= 75 дней):
bash
./doqa cert --yes --auto- Удалить автообновление (Linux):
bash
./doqa cert --unscheduleЗамечания
- Если используете внешний реверс‑прокси, убедитесь, что порт 80 доступен для HTTP‑01 проверки Let's Encrypt на этом сервере, либо выпустите/пробросьте сертификат на уровень Nginx DoQA самостоятельно.
- Если вы поменяли домен, после этого примените новые сертификаты вручную или пере‑выпустите их командой
domain→cert.