常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcat — это open-source корпоративный SSL обратный прокси-сервер, написанный на Go. Он объединяет nginx + Caddy + Web UI + GitOps в одном бинарнике: автоматический выпуск и обновление Let's Encrypt, умная маршрутизация доменов, балансировка нагрузки, WAF, хостинг приложений Docker / Runner и современная веб-панель администратора. С версии v2.1 он также поставляется со встроенным MCP-сервером, чтобы Claude / Cursor и другие AI-клиенты могли вызывать его инструменты напрямую.
MCP (Model Context Protocol) — открытый протокол, соединяющий AI-клиентов с внешними инструментами. Начиная с v2.1 SSLcat сам является MCP-сервером, а в версии v2.3.0-rc1 он предоставляет 22 инструмента (CRUD для сайтов / сертификатов / маршрутов прокси, проверка здоровья апстримов, запросы долгих задач, а также `error_log_list` / `error_log_tail` для просмотра недавних ошибок) плюс 5 ресурсов (отредактированная текущая конфигурация, моментальный снимок метрик среды выполнения, хвост журнала доступа, источники журналов ошибок, содержимое журналов ошибок). Поместите токен в Claude Desktop / Cursor / Cherry Studio / Continue.dev — и AI сможет перечислять сайты, выпускать сертификаты, менять маршруты и просматривать журналы доступа / ошибок, а деструктивные действия по-прежнему проходят двухфазное подтверждение.
Одна строка на macOS / Linux: `curl -fsSL https://raw.githubusercontent.com/xurenlu/sslcat/main/install.sh | bash`. Вы также можете скачать бинарники со страницы GitHub Releases (linux-amd64 / linux-arm64 / darwin-arm64 / darwin-amd64). Полная документация находится в каталоге `docs/` и на сайте.
Да. SSLcat интегрирован с Let's Encrypt (ACME). Добавление домена запускает автоматический выпуск, а сертификаты обновляются за 30 дней до истечения срока без простоев. Поддерживаются как HTTP-01, так и DNS-01 вызовы; DNS-01 в сочетании с AWS Route53 (и другими провайдерами) позволяет выпускать wildcard-сертификаты вида `*.example.com`.
По сравнению с nginx: SSLcat предлагает веб-панель администратора, автоматический SSL, развёртывание GitOps, мониторинг в реальном времени и AI-безопасность из коробки — больше никаких конфигурационных файлов, редактируемых вручную. По сравнению с Caddy: SSLcat предлагает 6 алгоритмов балансировки нагрузки, многопользовательское управление, развёртывание Docker-образов и Runner, систему API-токенов, потоковую передачу логов через WebSocket, а с v2.1 — встроенную интеграцию с MCP.
Полная поддержка HTTP/1.1, HTTP/2 и HTTP/3 (QUIC) с принудительным TLS 1.3. Долгоживущие соединения WebSocket и SSE обрабатываются особо, а длительные задачи ACME используют heartbeat, исключения тайм-аута записи и изоляцию параллелизма по доменам, чтобы они не могли мешать друг другу.
Встроены шесть алгоритмов (round-robin, взвешенный round-robin, least-conn, IP hash, случайный, fastest-response), в сочетании с TCP-проверками здоровья и закреплением сессий. Вы можете прикрепить список взвешенных бэкендов на уровне маршрута в рамках одного домена.
Добавьте SSLcat как Git remote, затем выполните `git push sslcat main`, чтобы развернуть — в стиле Dokku/Heroku. Точка входа развёртывания Runner является многослойной: загрузка каталога, загрузка бинарника, прямая загрузка Docker-образа, сборка из `git push` или использование шаблона. Все пути сходятся к единой спецификации Runner (переменные окружения, порты, монтирование, команда запуска).
Runner — это встроенный слой хостинга приложений SSLcat. Он может запускать Docker-контейнеры, запускать загруженные бинарники, запускать образы, собранные из `git push`, или развёртываться из шаблонов. При перезапуске самого SSLcat он только сверяет состояние контейнеров Runner — он никогда не перезапускает ваши бизнес-контейнеры, поэтому производственный трафик никогда не прерывается случайно.
Сопоставление правил WAF (сканирование тела запроса ограничено 1 МБ для контроля памяти), защита от DDoS, защита от перебора паролей, чёрные и белые списки по IP / UA / TLS-отпечатку, гранулярные API-токены, TOTP MFA, журналы аудита, управление версиями конфигурации и AI-детектор аномалий на основе Isolation Forest с онлайн-обучением, сохранением модели в JSON и выводом по реальному трафику.
Предпочтительно использовать встроенную команду сброса: `sslcat users password -username admin -new-password 'NewStrongPass123!'`. Из дерева исходного кода вы также можете выполнить: `go run tools/cmd/reset_password/main.go admin 'NewStrongPass123!'`.
Начиная с v2.0.0-rc22 вы также можете сбросить пароль через одноразовый код восстановления. Чтобы сгенерировать хеш bcrypt вручную с помощью Ruby: установите bcrypt командой `gem install bcrypt`, затем выполните `SSL_PASS='NewStrongPass123!' ruby -rbcrypt -e 'puts BCrypt::Password.create(ENV.fetch("SSL_PASS"), cost: 10)'`.
С помощью Python: `python3 -m pip install bcrypt`, затем `SSL_PASS='NewStrongPass123!' python3 -c 'import bcrypt, os; print(bcrypt.hashpw(os.environ["SSL_PASS"].encode(), bcrypt.gensalt(rounds=10)).decode())'`.
Запишите хеш в `admin.password_file` (обычно `/opt/sslcat/data/admin.pass` или `./data/admin.pass`) с правами `600`. Восстановление через файл паролей обычно не требует перезапуска SSLcat — следующий вход прочитает новый хеш.
`http://<your-host>:8080/sslcat-panel/`, учётная запись по умолчанию `admin`, пароль по умолчанию `admin*9527` (измените его при первом входе). И префикс URL администратора, и порт управления настраиваются.
Да. SSLcat выпускает wildcard-сертификаты, такие как `*.example.com`, через DNS-01 вызов Let's Encrypt. Wildcard-домены автоматически принудительно переводятся на DNS-01 и сочетаются с AWS Route53 и другими DNS-провайдерами для верификации.
Добавьте домен, целевой хост и порт в разделе "Sites" в панели администратора. Чтобы добавить несколько бэкендов, включите `load_balancer_enabled`, выберите алгоритм (round_robin / least_conn / ip_hash и т. д.), включите проверки здоровья и перечислите бэкенды. Вы также можете редактировать JSON-конфигурацию напрямую (SSLcat использует JSON, а не YAML).
Да. Линейка v2.0 продолжает укреплять production-пути: атомарная запись сертификатов, ключей, версий конфигурации, токенов и сессий; идемпотентные Stop / Close для каждого компонента; более безопасное кэширование апстримов в условиях параллелизма; высокопроизводительный WAF; надёжные долгоживущие соединения HTTP/2 / HTTP/3 / WebSocket. Недавняя оптимизация снизила нагрузку CPU в состоянии простоя с 50–100% до <1%, а в конфигурациях с несколькими Runner — примерно на 97%.
1) Включите MCP: `sslcat mcp enable`. 2) Создайте токен: `sslcat mcp token create --name claude-desktop --scopes read,site:write,cert:write`. Открытый текст токена показывается только один раз — сохраните его надёжно. 3) Настройте Claude Desktop, указав endpoint Streamable HTTP (по умолчанию `https://your-domain/sslcat-panel/mcp/stream`) и bearer-токен. Подробные конфигурации для Cursor, Cherry Studio, Continue.dev и отладки через curl см. в `docs/mcp-client-setup.md`.
Да. Каждый деструктивный инструмент использует двухфазное подтверждение: первый вызов возвращает превью dry-run с информацией о влиянии (например, `cert_delete` указывает, ссылается ли на сертификат правило прокси и сколько дней осталось; `proxy_route_delete` перечисляет префиксы и бэкенды) плюс `confirm_token` с TTL 60 секунд. AI должен передать этот токен обратно в аргументе `confirm` второго вызова, чтобы действительно выполнить операцию. Токены привязаны к (имя_токена, инструмент, хеш аргументов), поэтому их нельзя повторно использовать между инструментами или аргументами.
В SSLcat встроен Isolation Forest. `RequestSampler` извлекает признаки из каждого реального запроса в кольцевой буфер на 5000 ячеек; обучение берёт образцы непосредственно из кольца и сохраняет лес в JSON по пути `${data_dir}/ml/isolation_forest.json` (автоматически загружается при следующем запуске). Результаты вывода попадают в кольцевой буфер на 200 ячеек, поэтому вкладка "Недавние обнаружения" в панели администратора отражает реальный трафик, а не жёстко закодированные тестовые данные.
Linux (все основные дистрибутивы), macOS и Windows; публикуются бинарники как для amd64, так и для arm64. Для продакшена мы рекомендуем запускать SSLcat под systemd в Linux.
Минимум: 512 МБ RAM, 100 МБ дискового пространства. Рекомендуется: 2 ГБ RAM, 1 ГБ дискового пространства. Для сборки из исходного кода требуется Go 1.21+.
Все они. WebSocket прозрачно пересылается на апстрим; SSE по HTTP/2 / HTTP/3 настроен так, чтобы тайм-ауты записи не могли прервать долгоживущие потоки; PHP-сайты работают через бэкенд FastCGI.
Панель администратора читает журналы с ограниченным хвостом (большие файлы журналов никогда не загружаются в память целиком). Вы также можете напрямую читать настроенный файл журнала. Через MCP AI-клиенты могут получить хвост с помощью ресурса вида `sslcat://logs/access?since=10m&domain=foo.com&limit=200`.
SSLcat по умолчанию ориентирован на Let's Encrypt — бесплатный публичный CA, существующий для того, чтобы HTTPS стал стандартом по умолчанию. Вы по-прежнему можете загружать коммерческие сертификаты через `cert_upload`; SSLcat проверяет разбор PEM, соответствие сертификата и ключа, а также покрытие CN/SAN.
1) `sslcat doctor --json` выполняет одноразовую самопроверку конфигурации, портов, каталога сертификатов, корней сайтов, апстримов и состояния MCP-токенов. 2) `sslcat status --json` выводит версию, параметры прослушивания и сводку по сайтам / сертификатам / MCP. 3) Читайте журнал ошибок SSLcat и `${data_dir}/mcp_audit.YYYYMMDD.log` или позвольте AI читать их через MCP-инструменты `error_log_list` / `error_log_tail` (охватывает сам SSLcat плюс каждый proxy / static / php сайт). 4) `sslcat proxy health-check --domain foo.com --include-routes --json` параллельно проверяет основной бэкенд и каждый бэкенд PathPrefixRule. 5) Сервер раскрывает свою версию через заголовки ответа `X-App-Version` / `X-Server-Version`, чтобы вы могли подтвердить, какой образ фактически обслуживает трафик.
v2.2.0-rc1 добавляет команды CLI для эксплуатации: `sslcat status [--json]` (сводка среды выполнения), `sslcat doctor [--json]` (самопроверка конфигурации / портов / сертификатов / корней сайтов / апстримов / MCP-токенов), `sslcat site list/add/update/delete/enable/disable` (CRUD для статических и PHP сайтов — для удаления требуется явный `--yes`) и `sslcat proxy health-check [--domain] [--include-routes] [--json]` (TCP-проверка). Глобальный `-config` можно размещать перед подкомандой. v2.3.0-rc1 добавляет MCP-инструменты `error_log_list` и `error_log_tail`, а также ресурсы `sslcat://logs/error-sources` и `sslcat://logs/error{?id,kind,domain,since,keyword,limit,max_bytes}`, чтобы AI-клиенты могли перечислять и читать недавние ошибки как из самого SSLcat, так и из отдельных сайтов. Под капотом `internal/mcp/logview` — это ограниченный читатель логов (по умолчанию последние 1 МБ, максимум 4 МБ), чтобы большие файлы журналов не могли блокировать путь запроса.
Уже выпущено: полная интеграция MCP P1–P5 (v2.1.0), команды CLI для эксплуатации и самопроверки (v2.2.0-rc1), чтение журналов ошибок через MCP плюс ограниченный читатель логов (v2.3.0-rc1). Планируется: интеграция с Kubernetes, поддержка мультикластеров, продвинутые стратегии кэширования, система плагинов и GraphQL API.
MIT. Код, issues и релизы — всё находится на GitHub: https://github.com/xurenlu/sslcat . Issues, PR и дополнительные кейсы использования в `docs/` приветствуются.
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues