常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcat to otwartoźródłowy serwer odwrotnego proxy SSL klasy korporacyjnej napisany w Go. Łączy nginx + Caddy + Web UI + GitOps w jednym pliku binarnym: automatyczne wystawianie i odnawianie Let's Encrypt, inteligentny routing domen, równoważenie obciążenia, WAF, hosting aplikacji Docker / Runner oraz nowoczesny panel administracyjny Web. Od v2.1 dostarczany jest również z wbudowanym serwerem MCP, dzięki czemu Claude / Cursor i inni klienci AI mogą bezpośrednio wywoływać jego narzędzia.
MCP (Model Context Protocol) to otwarty protokół, który łączy klientów AI z zewnętrznymi narzędziami. Od v2.1 sam SSLcat jest serwerem MCP, a od v2.3.0-rc1 udostępnia 22 narzędzia (CRUD dla witryn / certyfikatów / tras proxy, kontrole stanu upstream, zapytania o długo działające zadania oraz `error_log_list` / `error_log_tail` do inspekcji ostatnich błędów) plus 5 zasobów (zredagowana bieżąca konfiguracja, migawka metryk środowiska wykonawczego, ogon dziennika dostępu, źródła dziennika błędów, zawartość dziennika błędów). Wstaw token do Claude Desktop / Cursor / Cherry Studio / Continue.dev, a AI będzie mogła wyświetlać witryny, wystawiać certyfikaty, zmieniać trasy oraz przeglądać dzienniki dostępu / błędów — destrukcyjne działania nadal przechodzą przez dwuetapowe potwierdzenie.
Jedna linia na macOS / Linux: `curl -fsSL https://raw.githubusercontent.com/xurenlu/sslcat/main/install.sh | bash`. Możesz także pobrać pliki binarne ze strony GitHub Releases (linux-amd64 / linux-arm64 / darwin-arm64 / darwin-amd64). Pełna dokumentacja znajduje się w `docs/` oraz na stronie internetowej.
Tak. SSLcat integruje Let's Encrypt (ACME). Dodanie domeny uruchamia automatyczne wystawienie, a certyfikaty są odnawiane 30 dni przed wygaśnięciem bez przestoju. Obsługiwane są zarówno wyzwania HTTP-01, jak i DNS-01; DNS-01 w połączeniu z AWS Route53 (i innymi dostawcami) pozwala wystawiać certyfikaty wieloznaczne, takie jak `*.example.com`.
W porównaniu z nginx: SSLcat dostarcza panel administracyjny Web, automatyczny SSL, wdrażanie GitOps, monitoring w czasie rzeczywistym oraz bezpieczeństwo oparte na AI od razu po wyjęciu z pudełka — koniec z ręcznie edytowanymi plikami konfiguracyjnymi. W porównaniu z Caddy: SSLcat oferuje 6 algorytmów równoważenia obciążenia, zarządzanie wieloma użytkownikami, wdrażanie obrazów Docker i Runner, system tokenów API, transmisję dzienników na żywo opartą na WebSocket, a od v2.1 wbudowaną integrację MCP.
Pełne HTTP/1.1, HTTP/2 i HTTP/3 (QUIC), z wymuszonym TLS 1.3. Długotrwałe połączenia WebSocket i SSE otrzymują specjalną obsługę, a długie zadania ACME wykorzystują heartbeaty, zwolnienia z limitu czasu zapisu oraz izolację współbieżności per domena, dzięki czemu nie mogą się wzajemnie blokować.
Wbudowanych jest sześć algorytmów (round-robin, ważony round-robin, least-conn, IP hash, losowy, najszybsza odpowiedź), w połączeniu z kontrolami stanu TCP i przyleganiem sesji. Możesz dołączyć listę ważonych backendów na poziomie trasy w pojedynczej domenie.
Dodaj SSLcat jako zdalne repozytorium Git, a następnie uruchom `git push sslcat main`, aby wdrożyć — w stylu Dokku/Heroku. Wejście do wdrożenia Runner jest warstwowe: prześlij katalog, prześlij plik binarny, pobierz bezpośrednio obraz Docker, zbuduj z `git push` lub użyj szablonu. Wszystkie ścieżki zbiegają się w tej samej zunifikowanej specyfikacji Runner (zmienne środowiskowe, porty, montowania, polecenie startowe).
Runner to wbudowana warstwa hostingu aplikacji SSLcat. Może uruchamiać kontenery Docker, uruchamiać przesłane pliki binarne, uruchamiać obrazy zbudowane z `git push` lub wdrażać z szablonów. Gdy sam SSLcat się restartuje, jedynie uzgadnia stan kontenerów Runner — nigdy nie restartuje twoich kontenerów biznesowych, dzięki czemu ruch produkcyjny nigdy nie jest przypadkowo odbijany.
Dopasowywanie reguł WAF (skanowanie treści żądania jest ograniczone do 1 MB, aby utrzymać pamięć w ryzach), ochrona przed DDoS, ochrona przed atakami brute-force, listy blokowania i zezwolenia dla IP / UA / odcisków palców TLS, drobnoziarniste tokeny API, TOTP MFA, dzienniki audytu, zarządzanie wersjami konfiguracji oraz detektor anomalii AI oparty na Isolation Forest z trenowaniem online, trwałym przechowywaniem modelu w JSON i wnioskowaniem na rzeczywistym ruchu.
Preferuj wbudowane polecenie resetowania: `sslcat users password -username admin -new-password 'NewStrongPass123!'`. Z drzewa źródłowego możesz także uruchomić: `go run tools/cmd/reset_password/main.go admin 'NewStrongPass123!'`.
Od v2.0.0-rc22 możesz również zresetować za pomocą jednorazowego kodu odzyskiwania. Aby ręcznie wygenerować skrót bcrypt za pomocą Ruby: zainstaluj bcrypt za pomocą `gem install bcrypt`, a następnie uruchom `SSL_PASS='NewStrongPass123!' ruby -rbcrypt -e 'puts BCrypt::Password.create(ENV.fetch("SSL_PASS"), cost: 10)'`.
Z Pythonem: `python3 -m pip install bcrypt`, a następnie `SSL_PASS='NewStrongPass123!' python3 -c 'import bcrypt, os; print(bcrypt.hashpw(os.environ["SSL_PASS"].encode(), bcrypt.gensalt(rounds=10)).decode())'`.
Zapisz skrót do `admin.password_file` (zwykle `/opt/sslcat/data/admin.pass` lub `./data/admin.pass`) z trybem `600`. Odzyskiwanie poprzez plik hasła zwykle nie wymaga restartu SSLcat — kolejne logowanie odczyta nowy skrót.
`http://<your-host>:8080/sslcat-panel/`, domyślne konto `admin`, domyślne hasło `admin*9527` (zmień je przy pierwszym logowaniu). Zarówno prefiks URL administratora, jak i port zarządzania są konfigurowalne.
Tak. SSLcat wystawia certyfikaty wieloznaczne, takie jak `*.example.com`, za pośrednictwem wyzwania DNS-01 Let's Encrypt. Domeny wieloznaczne są automatycznie wymuszane na DNS-01 i parują się z AWS Route53 oraz innymi dostawcami DNS do weryfikacji.
Dodaj domenę, host docelowy i port w sekcji „Witryny” w panelu administracyjnym. Aby dodać wiele backendów, włącz `load_balancer_enabled`, wybierz algorytm (round_robin / least_conn / ip_hash itd.), włącz kontrole stanu i wypisz backendy. Możesz także bezpośrednio edytować konfigurację JSON (SSLcat używa JSON, a nie YAML).
Tak. Linia v2.0 nadal utwardza ścieżki produkcyjne: atomowe zapisy dla certyfikatów, kluczy, wersji konfiguracji, tokenów i sesji; idempotentne Stop / Close na każdym komponencie; bezpieczniejsze buforowanie upstream pod współbieżnością; wysokoprzepustowy WAF; bardzo stabilne długotrwałe połączenia HTTP/2 / HTTP/3 / WebSocket. Niedawne dostrajanie obniżyło CPU w stanie bezczynności z 50–100% do <1%, a konfiguracje z wieloma Runnerami o około 97%.
1) Włącz MCP: `sslcat mcp enable`. 2) Utwórz token: `sslcat mcp token create --name claude-desktop --scopes read,site:write,cert:write`. Token w postaci zwykłego tekstu jest wyświetlany tylko raz — przechowuj go bezpiecznie. 3) Skonfiguruj Claude Desktop za pomocą punktu końcowego Streamable HTTP (domyślnie `https://your-domain/sslcat-panel/mcp/stream`) oraz tokenu bearer. Zobacz `docs/mcp-client-setup.md`, aby uzyskać pełne konfiguracje obejmujące Cursor, Cherry Studio, Continue.dev oraz debugowanie curl.
Tak. Każde destrukcyjne narzędzie wykorzystuje dwuetapowe potwierdzenie: pierwsze wywołanie zwraca podgląd dry-run z informacjami o wpływie (np. `cert_delete` oznacza, czy certyfikat jest przywoływany przez regułę proxy oraz ile dni pozostało; `proxy_route_delete` wyświetla prefiksy i backendy) plus `confirm_token` z 60-sekundowym TTL. AI musi przekazać ten token z powrotem w argumencie `confirm` drugiego wywołania, aby faktycznie wykonać operację. Tokeny są powiązane z (token_name, tool, hash argumentów), więc nie można ich ponownie używać dla różnych narzędzi lub argumentów.
Isolation Forest jest wbudowany w SSLcat. `RequestSampler` wyodrębnia cechy z każdego rzeczywistego żądania do bufora cyklicznego o 5 000 slotach; trenowanie pobiera próbki bezpośrednio z bufora i utrwala las jako JSON pod `${data_dir}/ml/isolation_forest.json` (automatycznie ładowany przy kolejnym starcie). Wnioskowania trafiają do bufora cyklicznego o 200 slotach, więc zakładka „Ostatnie wykrycia” w panelu administracyjnym odzwierciedla rzeczywisty ruch, a nie zakodowane na sztywno dane testowe.
Linux (wszystkie główne dystrybucje), macOS i Windows; publikowane są pliki binarne zarówno amd64, jak i arm64. Zalecamy uruchamianie SSLcat pod systemd na Linuksie w produkcji.
Minimum: 512 MB RAM, 100 MB dysku. Zalecane: 2 GB RAM, 1 GB dysku. Budowanie ze źródeł wymaga Go 1.21+.
Wszystkie z nich. WebSocket jest przezroczyście przekazywany do upstream; SSE na HTTP/2 / HTTP/3 jest dostrojony tak, że limity czasu zapisu nie mogą zabić długotrwałych strumieni; witryny PHP działają poprzez backend FastCGI.
Panel administracyjny czyta dzienniki z ograniczonym ogonem (duże pliki dzienników nigdy nie są wciągane do pamięci). Możesz także bezpośrednio śledzić skonfigurowany plik dziennika. Za pośrednictwem MCP klienci AI mogą pobrać ogon za pomocą zasobu takiego jak `sslcat://logs/access?since=10m&domain=foo.com&limit=200`.
SSLcat domyślnie celuje w Let's Encrypt — bezpłatne publiczne CA, które istnieje po to, aby HTTPS było domyślne. Nadal możesz przesyłać komercyjne certyfikaty za pomocą `cert_upload`; SSLcat sprawdza poprawność parsowania PEM, parowania certyfikatu z kluczem oraz pokrycia CN/SAN.
1) `sslcat doctor --json` przeprowadza jednorazową autodiagnostykę konfiguracji, portów, katalogu certyfikatów, katalogów głównych witryn, upstream i stanu tokenów MCP. 2) `sslcat status --json` wypisuje wersję, parametry nasłuchiwania oraz podsumowanie witryn / certyfikatów / MCP. 3) Przeczytaj dziennik błędów SSLcat oraz `${data_dir}/mcp_audit.YYYYMMDD.log`, lub pozwól AI odczytać je za pomocą narzędzi MCP `error_log_list` / `error_log_tail` (obejmuje samego SSLcat plus każdą witrynę proxy / statyczną / php). 4) `sslcat proxy health-check --domain foo.com --include-routes --json` równolegle sonduje główny backend i każdy backend PathPrefixRule. 5) Serwer udostępnia swoją wersję poprzez nagłówki odpowiedzi `X-App-Version` / `X-Server-Version`, dzięki czemu możesz potwierdzić, który obraz faktycznie obsługuje ruch.
v2.2.0-rc1 dodaje polecenia operacyjne CLI: `sslcat status [--json]` (podsumowanie środowiska wykonawczego), `sslcat doctor [--json]` (autodiagnostyka konfiguracji / portów / certyfikatów / katalogów głównych witryn / upstream / tokenów MCP), `sslcat site list/add/update/delete/enable/disable` (CRUD dla witryn statycznych i PHP — usunięcie wymaga jawnego `--yes`) oraz `sslcat proxy health-check [--domain] [--include-routes] [--json]` (sonda TCP). Globalna opcja `-config` może być umieszczona przed podpoleceniem. v2.3.0-rc1 dodaje narzędzia MCP `error_log_list` i `error_log_tail`, a także zasoby `sslcat://logs/error-sources` oraz `sslcat://logs/error{?id,kind,domain,since,keyword,limit,max_bytes}`, dzięki czemu klienci AI mogą wyświetlać i odczytywać ostatnie błędy z samego SSLcat oraz z poszczególnych witryn. Pod maską `internal/mcp/logview` jest ograniczonym czytnikiem dzienników (domyślnie ostatnie 1 MB, maksymalnie 4 MB), dzięki czemu duże pliki dzienników nie mogą zablokować ścieżki żądania.
Już wydane: pełna integracja MCP P1–P5 (v2.1.0), polecenia operacji CLI i autodiagnostyki (v2.2.0-rc1), odczyt dziennika błędów MCP plus ograniczony czytnik dzienników (v2.3.0-rc1). Planowane: integracja z Kubernetes, obsługa wielu klastrów, zaawansowane strategie buforowania, system wtyczek oraz API GraphQL.
MIT. Kod, zgłoszenia i wydania znajdują się na GitHubie: https://github.com/xurenlu/sslcat . Zgłoszenia, PR-y i dodatkowe przypadki użycia w `docs/` są mile widziane.
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues