常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcat è un server reverse proxy SSL di livello enterprise open source scritto in Go. Racchiude nginx + Caddy + Web UI + GitOps in un unico binario: emissione e rinnovo automatici con Let's Encrypt, routing intelligente per dominio, load balancing, WAF, hosting di applicazioni Docker / Runner e un moderno pannello di amministrazione Web. Dalla v2.1 include anche un server MCP integrato, così Claude / Cursor e altri client AI possono richiamarne direttamente gli strumenti.
MCP (Model Context Protocol) è un protocollo aperto che collega i client AI a strumenti esterni. Dalla v2.1 SSLcat è esso stesso un server MCP, e a partire dalla v2.3.0-rc1 espone 22 strumenti (CRUD per site / cert / proxy route, health check degli upstream, query su task di lunga durata, oltre a `error_log_list` / `error_log_tail` per ispezionare gli errori recenti) più 5 risorse (configurazione corrente ripulita, snapshot delle metriche runtime, tail dell'access log, sorgenti dei log di errore, contenuto dei log di errore). Inserisci un token in Claude Desktop / Cursor / Cherry Studio / Continue.dev e l'AI potrà elencare i siti, emettere certificati, modificare le route e ispezionare access / error log: le azioni distruttive passano comunque per una conferma a due fasi.
Una sola riga su macOS / Linux: `curl -fsSL https://raw.githubusercontent.com/xurenlu/sslcat/main/install.sh | bash`. Puoi anche scaricare i binari dalla pagina GitHub Releases (linux-amd64 / linux-arm64 / darwin-arm64 / darwin-amd64). La documentazione completa si trova in `docs/` e sul sito web.
Sì. SSLcat integra Let's Encrypt (ACME). L'aggiunta di un dominio attiva l'emissione automatica, e i certificati vengono rinnovati 30 giorni prima della scadenza senza downtime. Sono supportate sia le sfide HTTP-01 sia DNS-01; DNS-01 combinato con AWS Route53 (e altri provider) consente di emettere certificati wildcard come `*.example.com`.
Rispetto a nginx: SSLcat offre da subito un pannello di amministrazione Web, SSL automatico, deployment GitOps, monitoraggio in tempo reale e sicurezza guidata dall'AI — niente più file di configurazione modificati a mano. Rispetto a Caddy: SSLcat offre 6 algoritmi di load balancing, gestione multi-utente, deployment di immagini Docker e Runner, un sistema di token API, streaming dei log in tempo reale via WebSocket e, dalla v2.1, l'integrazione MCP integrata.
Pieno supporto per HTTP/1.1, HTTP/2 e HTTP/3 (QUIC), con TLS 1.3 forzato. Le connessioni WebSocket e SSE di lunga durata ricevono una gestione speciale, e i task ACME prolungati usano heartbeat, esenzioni dai write-timeout e isolamento della concorrenza per dominio così non possono trascinarsi a vicenda.
Sono integrati sei algoritmi (round-robin, weighted round-robin, least-conn, IP hash, random, fastest-response), combinati con health check TCP e session stickiness. Puoi associare una lista di backend pesati a livello di route su un singolo dominio.
Aggiungi SSLcat come remote Git, poi esegui `git push sslcat main` per fare deploy — stile Dokku/Heroku. Il punto di ingresso del deployment Runner è a livelli: carica una directory, carica un binario, scarica direttamente un'immagine Docker, fai build da `git push` oppure usa un template. Tutti i percorsi convergono sulla stessa specifica unificata di Runner (variabili d'ambiente, porte, mount, comando di avvio).
Runner è il layer di hosting applicativo integrato in SSLcat. Può eseguire container Docker, eseguire binari caricati, eseguire immagini costruite da `git push` o fare deploy da template. Quando SSLcat stesso si riavvia, riconcilia solo lo stato dei container Runner — non riavvia mai i tuoi container di business, così il traffico di produzione non viene mai interrotto accidentalmente.
Matching delle regole WAF (la scansione del body delle richieste è limitata a 1 MB per mantenere la memoria sotto controllo), protezione DDoS, anti-brute-force, blocco e whitelist per IP / UA / fingerprint TLS, token API a granularità fine, MFA TOTP, audit log, gestione delle versioni di configurazione e un rilevatore di anomalie AI basato su Isolation Forest con addestramento online, persistenza del modello in JSON e inferenza sul traffico reale.
Preferisci il comando di reset integrato: `sslcat users password -username admin -new-password 'NewStrongPass123!'`. Da un sorgente puoi anche eseguire: `go run tools/cmd/reset_password/main.go admin 'NewStrongPass123!'`.
Dalla v2.0.0-rc22 in poi è possibile resettare anche tramite codice di recupero monouso. Per generare manualmente un hash bcrypt con Ruby: installa bcrypt con `gem install bcrypt`, poi esegui `SSL_PASS='NewStrongPass123!' ruby -rbcrypt -e 'puts BCrypt::Password.create(ENV.fetch("SSL_PASS"), cost: 10)'`.
Con Python: `python3 -m pip install bcrypt`, poi `SSL_PASS='NewStrongPass123!' python3 -c 'import bcrypt, os; print(bcrypt.hashpw(os.environ["SSL_PASS"].encode(), bcrypt.gensalt(rounds=10)).decode())'`.
Scrivi l'hash in `admin.password_file` (di solito `/opt/sslcat/data/admin.pass` o `./data/admin.pass`) con permessi `600`. Il recupero tramite file di password normalmente non richiede il riavvio di SSLcat — il login successivo legge il nuovo hash.
`http://<your-host>:8080/sslcat-panel/`, account predefinito `admin`, password predefinita `admin*9527` (cambiala al primo accesso). Sia il prefisso URL del pannello sia la porta di gestione sono configurabili.
Sì. SSLcat emette certificati wildcard come `*.example.com` tramite la sfida DNS-01 di Let's Encrypt. I domini wildcard vengono indirizzati automaticamente su DNS-01 e si abbinano ad AWS Route53 e ad altri provider DNS per la verifica.
Aggiungi dominio, host e porta di destinazione sotto "Sites" nel pannello di amministrazione. Per aggiungere backend multipli abilita `load_balancer_enabled`, scegli l'algoritmo (round_robin / least_conn / ip_hash ecc.), attiva gli health check ed elenca i backend. Puoi anche modificare direttamente la configurazione JSON (SSLcat usa JSON, non YAML).
Sì. La linea v2.0 continua a rafforzare i percorsi di produzione: scritture atomiche per certificati, chiavi, versioni di configurazione, token e sessioni; Stop / Close idempotenti su ogni componente; caching degli upstream più sicuro sotto concorrenza; WAF ad alto throughput; connessioni HTTP/2 / HTTP/3 / WebSocket di lunga durata estremamente stabili. Il tuning recente ha portato la CPU a riposo dal 50–100% a meno dell'1% e le configurazioni multi-Runner di circa il 97%.
1) Abilita MCP: `sslcat mcp enable`. 2) Crea un token: `sslcat mcp token create --name claude-desktop --scopes read,site:write,cert:write`. Il token in chiaro viene mostrato una sola volta — conservalo in modo sicuro. 3) Configura Claude Desktop con l'endpoint Streamable HTTP (predefinito `https://your-domain/sslcat-panel/mcp/stream`) e il bearer token. Consulta `docs/mcp-client-setup.md` per le configurazioni complete che coprono Cursor, Cherry Studio, Continue.dev e il debug con curl.
Sì. Ogni strumento distruttivo usa una conferma a due fasi: la prima chiamata restituisce un'anteprima dry-run con informazioni d'impatto (ad es. `cert_delete` segnala se il certificato è referenziato da una regola di proxy e quanti giorni mancano alla scadenza; `proxy_route_delete` elenca prefissi e backend) più un `confirm_token` con TTL di 60 secondi. L'AI deve passare di nuovo quel token nell'argomento `confirm` di una seconda chiamata per eseguire davvero. I token sono vincolati a (token_name, tool, hash degli argomenti), quindi non possono essere riutilizzati tra strumenti o argomenti diversi.
In SSLcat è integrato un Isolation Forest. Un `RequestSampler` estrae feature da ogni richiesta reale in un ring buffer da 5.000 slot; l'addestramento attinge i campioni direttamente dal ring e persiste la foresta come JSON in `${data_dir}/ml/isolation_forest.json` (caricato automaticamente al prossimo avvio). Le inferenze finiscono in un ring buffer da 200 slot, così la scheda "Recent detections" del pannello di amministrazione riflette il traffico reale, non dati mock cablati a mano.
Linux (tutte le distribuzioni principali), macOS e Windows; vengono pubblicati binari sia amd64 sia arm64. Per la produzione consigliamo di eseguire SSLcat sotto systemd su Linux.
Minimo: 512 MB di RAM, 100 MB di disco. Consigliato: 2 GB di RAM, 1 GB di disco. Il build dal sorgente richiede Go 1.21+.
Tutti quanti. WebSocket viene inoltrato in modo trasparente verso l'upstream; SSE su HTTP/2 / HTTP/3 è ottimizzato in modo che i write timeout non possano interrompere stream a lunga durata; i siti PHP funzionano tramite un backend FastCGI.
Il pannello di amministrazione legge i log con tailing limitato (i file di log di grandi dimensioni non vengono mai caricati interamente in memoria). Puoi anche fare tail direttamente del file di log configurato. Tramite MCP, i client AI possono recuperare il tail con una risorsa come `sslcat://logs/access?since=10m&domain=foo.com&limit=200`.
SSLcat punta su Let's Encrypt da subito — una CA pubblica gratuita che esiste per rendere HTTPS lo standard. Puoi comunque caricare certificati commerciali tramite `cert_upload`; SSLcat verifica il parsing PEM, l'accoppiamento certificato/chiave e la copertura CN/SAN.
1) `sslcat doctor --json` esegue un'auto-diagnosi unica su configurazione, porte, directory dei certificati, root dei siti, upstream e stato dei token MCP. 2) `sslcat status --json` stampa versione, parametri di ascolto e riepilogo di site / cert / MCP. 3) Leggi il log degli errori di SSLcat e `${data_dir}/mcp_audit.YYYYMMDD.log`, oppure lascia che l'AI li legga tramite gli strumenti MCP `error_log_list` / `error_log_tail` (copre SSLcat stesso più ogni sito proxy / statico / php). 4) `sslcat proxy health-check --domain foo.com --include-routes --json` sonda il backend principale e ogni backend di PathPrefixRule in parallelo. 5) Il server espone la propria versione tramite gli header di risposta `X-App-Version` / `X-Server-Version`, così puoi confermare quale immagine sta effettivamente servendo il traffico.
v2.2.0-rc1 aggiunge comandi operativi da CLI: `sslcat status [--json]` (riepilogo runtime), `sslcat doctor [--json]` (auto-diagnosi su configurazione / porte / certificati / root dei siti / upstream / token MCP), `sslcat site list/add/update/delete/enable/disable` (CRUD per siti statici e PHP — l'eliminazione richiede l'esplicito `--yes`) e `sslcat proxy health-check [--domain] [--include-routes] [--json]` (sonda TCP). Il flag globale `-config` può essere posizionato prima del subcomando. v2.3.0-rc1 aggiunge gli strumenti MCP `error_log_list` ed `error_log_tail`, oltre alle risorse `sslcat://logs/error-sources` e `sslcat://logs/error{?id,kind,domain,since,keyword,limit,max_bytes}` così i client AI possono elencare e leggere errori recenti da SSLcat stesso e dai singoli siti. Sotto il cofano `internal/mcp/logview` è un lettore di log limitato (per impostazione predefinita l'ultimo 1 MB, massimo 4 MB) così i file di log di grandi dimensioni non possono bloccare il percorso delle richieste.
Già rilasciato: integrazione MCP completa P1–P5 (v2.1.0), comandi di operazioni CLI e auto-diagnosi (v2.2.0-rc1), lettura dei log di errore via MCP più il lettore di log limitato (v2.3.0-rc1). In programma: integrazione Kubernetes, supporto multi-cluster, strategie di caching avanzate, un sistema di plugin e un'API GraphQL.
MIT. Codice, issue e release sono tutti su GitHub: https://github.com/xurenlu/sslcat . Issue, PR e ulteriori casi d'uso sotto `docs/` sono molto benvenuti.
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues