常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcat is een open-source SSL reverse proxy-server op enterpriseniveau, geschreven in Go. Het bundelt nginx + Caddy + Web UI + GitOps in één binary: automatische uitgifte en verlenging via Let's Encrypt, slimme domeinrouting, load balancing, WAF, app-hosting met Docker / Runner en een modern Web-beheerpaneel. Vanaf v2.1 wordt ook een ingebouwde MCP-server meegeleverd zodat Claude / Cursor en andere AI-clients de tools rechtstreeks kunnen aanroepen.
MCP (Model Context Protocol) is een open protocol dat AI-clients verbindt met externe tools. Vanaf v2.1 is SSLcat zelf een MCP-server en vanaf v2.3.0-rc1 stelt het 22 tools beschikbaar (CRUD voor site / cert / proxy route, upstream health check, query's voor langlopende taken, en `error_log_list` / `error_log_tail` voor het inspecteren van recente fouten) plus 5 resources (geredigeerde huidige configuratie, snapshot van runtime-metrieken, tail van het access log, bronnen van foutlogs, inhoud van foutlogs). Plaats een token in Claude Desktop / Cursor / Cherry Studio / Continue.dev en de AI kan sites opsommen, certificaten uitgeven, routes wijzigen en access- / foutlogs inspecteren — destructieve acties verlopen nog steeds via een tweefasenbevestiging.
Eén regel op macOS / Linux: `curl -fsSL https://raw.githubusercontent.com/xurenlu/sslcat/main/install.sh | bash`. Je kunt ook binaries ophalen van de GitHub Releases-pagina (linux-amd64 / linux-arm64 / darwin-arm64 / darwin-amd64). Volledige documentatie staat onder `docs/` en op de website.
Ja. SSLcat integreert Let's Encrypt (ACME). Het toevoegen van een domein triggert automatische uitgifte, en certificaten worden 30 dagen voor het verlopen verlengd zonder downtime. Zowel HTTP-01- als DNS-01-uitdagingen worden ondersteund; DNS-01 in combinatie met AWS Route53 (en andere providers) betekent dat je wildcard-certificaten zoals `*.example.com` kunt uitgeven.
Tegenover nginx: SSLcat levert standaard een Web-beheerpaneel, automatische SSL, GitOps-deployment, real-time monitoring en AI-gedreven beveiliging — geen handmatig bewerkte configuratiebestanden meer. Tegenover Caddy: SSLcat biedt 6 load-balancing-algoritmen, beheer voor meerdere gebruikers, deployment van Docker-images en Runner, een API-tokensysteem, livelog-streaming via WebSocket en vanaf v2.1 de ingebouwde MCP-integratie.
Volledige ondersteuning voor HTTP/1.1, HTTP/2 en HTTP/3 (QUIC), met afgedwongen TLS 1.3. Langlopende WebSocket- en SSE-verbindingen krijgen speciale behandeling, en langlopende ACME-taken gebruiken heartbeats, uitzonderingen op schrijftimeouts en concurrency-isolatie per domein zodat ze elkaar niet kunnen vertragen.
Zes algoritmen zijn ingebouwd (round-robin, weighted round-robin, least-conn, IP hash, random, fastest-response), gecombineerd met TCP health checks en session stickiness. Je kunt op routeniveau binnen één domein een lijst met gewogen backends koppelen.
Voeg SSLcat toe als Git-remote en voer `git push sslcat main` uit om te deployen — Dokku/Heroku-stijl. De Runner-deploymentingang is gelaagd: upload een map, upload een binary, haal direct een Docker-image op, bouw vanuit `git push`, of gebruik een template. Alle paden komen samen in dezelfde uniforme Runner-spec (env-variabelen, poorten, mounts, startcommando).
Runner is de ingebouwde app-hostinglaag van SSLcat. Het kan Docker-containers draaien, geüploade binaries draaien, images draaien die gebouwd zijn vanuit `git push`, of deployen vanuit templates. Wanneer SSLcat zelf herstart, reconcilieert het alleen de toestand van Runner-containers — het herstart nooit je business-containers, zodat productieverkeer nooit per ongeluk wordt onderbroken.
WAF-regelmatching (scanning van de request body is gemaximeerd op 1 MB om het geheugen begrensd te houden), DDoS-bescherming, brute-force-bescherming, block- en whitelisting op basis van IP / UA / TLS-vingerafdruk, fijnmazige API-tokens, TOTP MFA, auditlogs, configuratieversiebeheer, en een op Isolation Forest gebaseerde AI-anomaliedetector met online training, JSON-modelpersistentie en inferentie op echt verkeer.
Gebruik bij voorkeur het ingebouwde reset-commando: `sslcat users password -username admin -new-password 'NewStrongPass123!'`. Vanuit een source tree kun je ook uitvoeren: `go run tools/cmd/reset_password/main.go admin 'NewStrongPass123!'`.
Vanaf v2.0.0-rc22 kun je ook resetten via een eenmalige herstelcode. Om handmatig een bcrypt-hash te genereren met Ruby: installeer bcrypt met `gem install bcrypt`, voer dan `SSL_PASS='NewStrongPass123!' ruby -rbcrypt -e 'puts BCrypt::Password.create(ENV.fetch("SSL_PASS"), cost: 10)'` uit.
Met Python: `python3 -m pip install bcrypt`, vervolgens `SSL_PASS='NewStrongPass123!' python3 -c 'import bcrypt, os; print(bcrypt.hashpw(os.environ["SSL_PASS"].encode(), bcrypt.gensalt(rounds=10)).decode())'`.
Schrijf de hash naar `admin.password_file` (vaak `/opt/sslcat/data/admin.pass` of `./data/admin.pass`) met modus `600`. Herstel via wachtwoordbestand vereist meestal geen herstart van SSLcat — de volgende login leest de nieuwe hash.
`http://<your-host>:8080/sslcat-panel/`, standaardaccount `admin`, standaardwachtwoord `admin*9527` (wijzig dit bij de eerste login). Zowel het URL-voorvoegsel van het beheerpaneel als de beheerpoort zijn configureerbaar.
Ja. SSLcat geeft wildcard-certificaten zoals `*.example.com` uit via de DNS-01-uitdaging van Let's Encrypt. Wildcard-domeinen worden automatisch op DNS-01 geforceerd en koppelen aan AWS Route53 en andere DNS-providers voor verificatie.
Voeg een domein, doelhost en poort toe onder "Sites" in het beheerpaneel. Om meerdere backends toe te voegen, schakel `load_balancer_enabled` in, kies het algoritme (round_robin / least_conn / ip_hash enz.), zet health checks aan en vermeld de backends. Je kunt ook de JSON-configuratie rechtstreeks bewerken (SSLcat gebruikt JSON, geen YAML).
Ja. De v2.0-lijn blijft productiepaden verharden: atomic writes voor certificaten, sleutels, configuratieversies, tokens en sessies; idempotente Stop / Close op elk component; veiligere upstream-caching onder concurrency; WAF met hoge doorvoer; rotsvaste langlopende HTTP/2 / HTTP/3 / WebSocket-verbindingen. Recente tuning bracht het CPU-gebruik in idle-toestand van 50–100% terug naar <1% en multi-Runner-opstellingen met ongeveer 97%.
1) MCP inschakelen: `sslcat mcp enable`. 2) Een token aanmaken: `sslcat mcp token create --name claude-desktop --scopes read,site:write,cert:write`. Het plaintext-token wordt slechts één keer getoond — bewaar het veilig. 3) Configureer Claude Desktop met de Streamable HTTP-endpoint (standaard `https://your-domain/sslcat-panel/mcp/stream`) en het bearer-token. Zie `docs/mcp-client-setup.md` voor volledige configuraties voor Cursor, Cherry Studio, Continue.dev en curl-debugging.
Ja. Elke destructieve tool gebruikt een tweefasenbevestiging: de eerste aanroep retourneert een dry-run-voorbeeld met impactinformatie (bijv. `cert_delete` geeft aan of het certificaat door een proxyregel wordt gerefereerd en hoeveel dagen er nog resteren; `proxy_route_delete` toont prefixes en backends) plus een `confirm_token` met TTL van 60 seconden. De AI moet dat token in de tweede aanroep terugsturen in het `confirm`-argument om daadwerkelijk uit te voeren. Tokens zijn gebonden aan (token_name, tool, args hash), zodat ze niet over tools of argumenten heen herbruikt kunnen worden.
Een Isolation Forest is ingebouwd in SSLcat. Een `RequestSampler` extraheert kenmerken uit elke echte aanvraag naar een ringbuffer met 5.000 slots; training haalt samples rechtstreeks uit de ring en persisteert het forest als JSON onder `${data_dir}/ml/isolation_forest.json` (automatisch geladen bij de volgende start). Inferenties belanden in een ringbuffer met 200 slots, zodat het tabblad "Recente detecties" in het beheerpaneel echt verkeer weergeeft, geen hardgecodeerde mockdata.
Linux (alle grote distro's), macOS en Windows; zowel amd64- als arm64-binaries worden gepubliceerd. We raden aan SSLcat in productie onder systemd op Linux te draaien.
Minimum: 512 MB RAM, 100 MB schijfruimte. Aanbevolen: 2 GB RAM, 1 GB schijfruimte. Bouwen vanuit de broncode vereist Go 1.21+.
Allemaal. WebSocket wordt transparant doorgestuurd naar de upstream; SSE op HTTP/2 / HTTP/3 is afgesteld zodat schrijftimeouts langlopende streams niet kunnen afbreken; PHP-sites werken via een FastCGI-backend.
Het beheerpaneel leest logs met begrensde tailing (grote logbestanden worden nooit in het geheugen geladen). Je kunt ook het geconfigureerde logbestand rechtstreeks tailen. Via MCP kunnen AI-clients de tail ophalen met een resource zoals `sslcat://logs/access?since=10m&domain=foo.com&limit=200`.
SSLcat richt zich standaard op Let's Encrypt — een gratis publieke CA die bestaat om HTTPS de standaard te maken. Je kunt nog steeds commerciële certificaten uploaden via `cert_upload`; SSLcat valideert PEM-parsing, certificaat/sleutelparing en CN/SAN-dekking.
1) `sslcat doctor --json` voert een zelfcontrole in één keer uit over config, poorten, certificaatdirectory, site-roots, upstreams en MCP-tokenstatus. 2) `sslcat status --json` toont versie, listenparameters en samenvatting van site / cert / MCP. 3) Lees het SSLcat-foutlog en `${data_dir}/mcp_audit.YYYYMMDD.log`, of laat AI ze lezen via de MCP-tools `error_log_list` / `error_log_tail` (dekt SSLcat zelf plus elke proxy / static / php-site). 4) `sslcat proxy health-check --domain foo.com --include-routes --json` test de hoofdbackend en elke backend van PathPrefixRule parallel. 5) De server stelt zijn versie beschikbaar via de responseheaders `X-App-Version` / `X-Server-Version` zodat je kunt bevestigen welke image het verkeer daadwerkelijk afhandelt.
v2.2.0-rc1 voegt CLI-beheercommando's toe: `sslcat status [--json]` (runtime-samenvatting), `sslcat doctor [--json]` (zelfcontrole over config / poorten / certs / site-roots / upstreams / MCP-tokens), `sslcat site list/add/update/delete/enable/disable` (CRUD voor statische en PHP-sites — verwijderen vereist expliciete `--yes`), en `sslcat proxy health-check [--domain] [--include-routes] [--json]` (TCP-probe). De globale `-config` kan vóór het subcommando worden geplaatst. v2.3.0-rc1 voegt de MCP-tools `error_log_list` en `error_log_tail` toe, plus de resources `sslcat://logs/error-sources` en `sslcat://logs/error{?id,kind,domain,since,keyword,limit,max_bytes}` zodat AI-clients recente fouten van SSLcat zelf en van individuele sites kunnen opsommen en lezen. Onder de motorkap is `internal/mcp/logview` een begrensde logreader (standaard de laatste 1 MB, max 4 MB) zodat grote logbestanden het requestpad niet kunnen blokkeren.
Reeds opgeleverd: volledige MCP-integratie P1–P5 (v2.1.0), CLI-beheer- en zelfcontrolecommando's (v2.2.0-rc1), MCP-foutlog-lezen plus de begrensde logreader (v2.3.0-rc1). Gepland: Kubernetes-integratie, multi-clusterondersteuning, geavanceerde cachingstrategieën, een pluginsysteem en een GraphQL API.
MIT. Code, issues en releases staan allemaal op GitHub: https://github.com/xurenlu/sslcat . Issues, PR's en aanvullende use cases onder `docs/` zijn van harte welkom.
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues