Настройка SSL/TLS
Собственный сертификат для консоли ScanSuite или работа за веб-сервером, который уже есть на сервере.
Как подключить к консоли ScanSuite собственный сертификат. DefectDojo, если вы им пользуетесь, — отдельная установка со своим доменом и сертификатом; его настройка описана в разделе Настройка DefectDojo.
1. Зарегистрируйте доменное имя
Заведите в DNS имя для консоли, например scansuite.yourdomain.com.
2. Остановите сервер
Прежде чем менять сертификат, остановите ScanSuite:
cd /opt/scansuite && ./scansuite stop3. Получите сертификат
Выпустите сертификат в своём внутреннем удостоверяющем центре. Если сервер ScanSuite доступен из интернета, можно воспользоваться и Let's Encrypt.
Установите Certbot
sudo snap install certbot --classicВыпустите сертификат
sudo certbot certonly --register-unsafely-without-email --agree-tos -d scansuite.yourdomain.com4. Замените ключ и сертификат
Скопируйте новые сертификат и ключ в каталог /opt/scansuite/services/nginx/certs/ под теми именами, которые ждёт nginx: сертификат с полной цепочкой — как cert.pem, закрытый ключ — как key.pem. Для сертификата от certbot это выглядит так:
cd /opt/scansuite
sudo cp /etc/letsencrypt/live/scansuite.yourdomain.com/fullchain.pem services/nginx/certs/cert.pem
sudo cp /etc/letsencrypt/live/scansuite.yourdomain.com/privkey.pem services/nginx/certs/key.pem
5. Запустите сервер
cd /opt/scansuite && ./scansuite restart6. Проверьте, что сертификат подключён
По журналу nginx видно, подхватился ли сертификат:
cd /opt/scansuite && ./scansuite logs nginxКроме того, ./scansuite doctor показывает, сколько дней ещё действует сертификат из services/nginx/certs/cert.pem.
Если в журнале есть ошибки, проверьте имена файлов и права доступа к ним. Certbot продлевает сертификат в /etc/letsencrypt, а не в каталоге certs: после каждого продления скопируйте файлы заново и перезапустите ScanSuite.
За веб-сервером, который уже работает на узле
Если порты 80 и 443 на сервере уже заняты — собственным nginx или Apache либо прокси перед несколькими сайтами, — оставьте сертификат там, а запросы к ScanSuite пусть передаёт этот веб-сервер. Для этого опубликуйте консоль (сервис web, порт 5000) только на loopback-адресе и отключите встроенный nginx ScanSuite в файле docker-compose.local.yml рядом с docker-compose.yml:
services:
web:
ports:
- "127.0.0.1:5000:5000"
nginx:
profiles: ["bundled-nginx"]Этот файл принадлежит серверу: обновления его не меняют, а установка, обновление и запуск всегда его подключают. Чтобы применить изменения, перезапустите ScanSuite — после этого ./scansuite doctor сообщит, что порты 80 и 443 оставлены серверу.
cd /opt/scansuite && ./scansuite restartНаправьте веб-сервер на этот порт. Пример для nginx:
server {
listen 443 ssl;
server_name scansuite.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/scansuite.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/scansuite.yourdomain.com/privkey.pem;
client_max_body_size 2000M;
proxy_read_timeout 600;
proxy_send_timeout 600;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Не убирайте ограничение размера запроса и тайм-ауты: это те же значения, что во встроенном nginx ScanSuite. Архивы с кодом и отчёты загружаются через консоль, и без этих настроек прокси обрывает большие загрузки и долгие запросы с ошибками 413 и 504.
Проверено: 2026-09-30