Развёртывание

Настройка SSL/TLS

Собственный сертификат для консоли ScanSuite или работа за веб-сервером, который уже есть на сервере.

Как подключить к консоли ScanSuite собственный сертификат. DefectDojo, если вы им пользуетесь, — отдельная установка со своим доменом и сертификатом; его настройка описана в разделе Настройка DefectDojo.

1. Зарегистрируйте доменное имя

Заведите в DNS имя для консоли, например scansuite.yourdomain.com.

2. Остановите сервер

Прежде чем менять сертификат, остановите ScanSuite:

Терминал
cd /opt/scansuite && ./scansuite stop

3. Получите сертификат

Выпустите сертификат в своём внутреннем удостоверяющем центре. Если сервер ScanSuite доступен из интернета, можно воспользоваться и Let's Encrypt.

Установите Certbot

Терминал
sudo snap install certbot --classic

Выпустите сертификат

Терминал
sudo certbot certonly --register-unsafely-without-email --agree-tos -d scansuite.yourdomain.com

4. Замените ключ и сертификат

Скопируйте новые сертификат и ключ в каталог /opt/scansuite/services/nginx/certs/ под теми именами, которые ждёт nginx: сертификат с полной цепочкой — как cert.pem, закрытый ключ — как key.pem. Для сертификата от certbot это выглядит так:

bash
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
Содержимое каталога сертификатов ScanSuite
Каталог сертификатов ScanSuite

5. Запустите сервер

Терминал
cd /opt/scansuite && ./scansuite restart

6. Проверьте, что сертификат подключён

По журналу 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:

docker-compose.local.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:

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