常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcat es un servidor de proxy inverso SSL de nivel empresarial de código abierto escrito en Go. Agrupa nginx + Caddy + interfaz Web + GitOps en un único binario: emisión y renovación automática con Let's Encrypt, enrutamiento inteligente por dominio, balanceo de carga, WAF, hospedaje de aplicaciones Docker / Runner y un moderno panel de administración Web. Desde v2.1 también incluye un servidor MCP integrado para que clientes de IA como Claude / Cursor puedan llamar a sus herramientas directamente.
MCP (Model Context Protocol) es un protocolo abierto que conecta clientes de IA con herramientas externas. Desde v2.1 SSLcat es en sí mismo un servidor MCP, y a partir de v2.3.0-rc1 expone 22 herramientas (CRUD de sitios / certificados / rutas de proxy, comprobación de salud de upstreams, consulta de tareas de larga duración, y `error_log_list` / `error_log_tail` para inspeccionar errores recientes) más 5 recursos (configuración actual con datos redactados, instantánea de métricas en tiempo de ejecución, cola del log de acceso, fuentes del log de errores, contenido del log de errores). Coloca un token en Claude Desktop / Cursor / Cherry Studio / Continue.dev y la IA podrá listar sitios, emitir certificados, cambiar rutas e inspeccionar logs de acceso / errores: las acciones destructivas siguen pasando por una confirmación en dos fases.
Una línea en macOS / Linux: `curl -fsSL https://raw.githubusercontent.com/xurenlu/sslcat/main/install.sh | bash`. También puedes descargar binarios desde la página de GitHub Releases (linux-amd64 / linux-arm64 / darwin-arm64 / darwin-amd64). La documentación completa está en `docs/` y en el sitio web.
Sí. SSLcat integra Let's Encrypt (ACME). Añadir un dominio activa la emisión automática, y los certificados se renuevan 30 días antes de su caducidad sin tiempo de inactividad. Se admiten tanto los desafíos HTTP-01 como DNS-01; DNS-01 junto con AWS Route53 (y otros proveedores) permite emitir certificados comodín como `*.example.com`.
Frente a nginx: SSLcat incluye un panel de administración Web, SSL automático, despliegue GitOps, monitorización en tiempo real y seguridad impulsada por IA listos para usar, sin más archivos de configuración editados a mano. Frente a Caddy: SSLcat ofrece 6 algoritmos de balanceo de carga, gestión multiusuario, despliegue de imágenes Docker y Runner, un sistema de tokens API, streaming de logs en vivo basado en WebSocket y, desde v2.1, la integración MCP integrada.
HTTP/1.1, HTTP/2 y HTTP/3 (QUIC) completos, con TLS 1.3 obligatorio. Las conexiones WebSocket y SSE de larga duración reciben un tratamiento especial, y las tareas ACME largas usan latidos, exenciones de tiempo de espera de escritura y aislamiento de concurrencia por dominio para que no puedan arrastrarse mutuamente.
Hay seis algoritmos integrados (round-robin, round-robin ponderado, least-conn, IP hash, aleatorio, respuesta más rápida), combinados con comprobaciones de salud TCP y persistencia de sesión. Puedes asociar una lista de backends ponderados a nivel de ruta en un solo dominio.
Añade SSLcat como remoto de Git y luego ejecuta `git push sslcat main` para desplegar: al estilo Dokku/Heroku. El punto de entrada de despliegue del Runner está en capas: sube un directorio, sube un binario, descarga una imagen Docker directamente, construye desde `git push` o usa una plantilla. Todas las rutas convergen en la misma especificación unificada del Runner (variables de entorno, puertos, montajes, comando de inicio).
Runner es la capa de hospedaje de aplicaciones integrada en SSLcat. Puede ejecutar contenedores Docker, ejecutar binarios subidos, ejecutar imágenes construidas desde `git push` o desplegar desde plantillas. Cuando el propio SSLcat se reinicia, solo reconcilia el estado de los contenedores del Runner; nunca reinicia tus contenedores de negocio, así el tráfico de producción nunca se ve interrumpido accidentalmente.
Coincidencia de reglas WAF (el análisis del cuerpo de la petición está limitado a 1 MB para mantener la memoria acotada), protección DDoS, anti fuerza bruta, listas negras y blancas por IP / UA / huella TLS, tokens API de grano fino, MFA TOTP, registros de auditoría, gestión de versiones de configuración y un detector de anomalías basado en Isolation Forest con entrenamiento en línea, persistencia del modelo en JSON e inferencia con tráfico real.
Prefiere el comando de restablecimiento integrado: `sslcat users password -username admin -new-password 'NewStrongPass123!'`. Desde un árbol de código fuente también puedes ejecutar: `go run tools/cmd/reset_password/main.go admin 'NewStrongPass123!'`.
Desde v2.0.0-rc22 en adelante también puedes restablecerla mediante un código de recuperación de un solo uso. Para generar un hash bcrypt manualmente con Ruby: instala bcrypt con `gem install bcrypt`, luego ejecuta `SSL_PASS='NewStrongPass123!' ruby -rbcrypt -e 'puts BCrypt::Password.create(ENV.fetch("SSL_PASS"), cost: 10)'`.
Con Python: `python3 -m pip install bcrypt`, luego `SSL_PASS='NewStrongPass123!' python3 -c 'import bcrypt, os; print(bcrypt.hashpw(os.environ["SSL_PASS"].encode(), bcrypt.gensalt(rounds=10)).decode())'`.
Escribe el hash en `admin.password_file` (habitualmente `/opt/sslcat/data/admin.pass` o `./data/admin.pass`) con permisos `600`. La recuperación mediante archivo de contraseña normalmente no requiere reiniciar SSLcat: el siguiente inicio de sesión lee el nuevo hash.
`http://<your-host>:8080/sslcat-panel/`, cuenta predeterminada `admin`, contraseña predeterminada `admin*9527` (cámbiala en el primer inicio de sesión). Tanto el prefijo de URL de administración como el puerto de gestión son configurables.
Sí. SSLcat emite certificados comodín como `*.example.com` mediante el desafío DNS-01 de Let's Encrypt. Los dominios comodín se fuerzan automáticamente a DNS-01 y se combinan con AWS Route53 y otros proveedores DNS para la verificación.
Añade un dominio, host objetivo y puerto en "Sitios" del panel de administración. Para añadir varios backends habilita `load_balancer_enabled`, elige el algoritmo (round_robin / least_conn / ip_hash, etc.), activa las comprobaciones de salud y enumera los backends. También puedes editar la configuración JSON directamente (SSLcat usa JSON, no YAML).
Sí. La línea v2.0 sigue endureciendo las rutas de producción: escrituras atómicas para certificados, claves, versiones de configuración, tokens y sesiones; Stop / Close idempotentes en cada componente; caché de upstream más segura bajo concurrencia; WAF de alto rendimiento; conexiones HTTP/2 / HTTP/3 / WebSocket de larga duración sólidas como una roca. Las optimizaciones recientes redujeron la CPU en estado inactivo del 50–100% a <1% y los despliegues multi-Runner en aproximadamente un 97%.
1) Habilita MCP: `sslcat mcp enable`. 2) Crea un token: `sslcat mcp token create --name claude-desktop --scopes read,site:write,cert:write`. El token en texto plano se muestra solo una vez: guárdalo de forma segura. 3) Configura Claude Desktop con el endpoint Streamable HTTP (por defecto `https://your-domain/sslcat-panel/mcp/stream`) y el token bearer. Consulta `docs/mcp-client-setup.md` para configuraciones completas que cubren Cursor, Cherry Studio, Continue.dev y depuración con curl.
Sí. Cada herramienta destructiva usa confirmación en dos fases: la primera llamada devuelve una vista previa en modo dry-run con información de impacto (por ejemplo, `cert_delete` indica si el certificado está referenciado por una regla de proxy y cuántos días le quedan; `proxy_route_delete` lista los prefijos y backends) más un `confirm_token` con TTL de 60 segundos. La IA debe pasar ese token de vuelta en el argumento `confirm` de una segunda llamada para ejecutar realmente. Los tokens están vinculados a (token_name, tool, hash de argumentos), por lo que no pueden reutilizarse entre herramientas o argumentos.
SSLcat incorpora un Isolation Forest. Un `RequestSampler` extrae características de cada petición real en un buffer circular de 5.000 ranuras; el entrenamiento toma muestras directamente del anillo y persiste el bosque como JSON en `${data_dir}/ml/isolation_forest.json` (cargado automáticamente en el siguiente inicio). Las inferencias se almacenan en un buffer circular de 200 ranuras, por lo que la pestaña "Detecciones recientes" del panel de administración refleja el tráfico real, no datos simulados codificados.
Linux (todas las distribuciones principales), macOS y Windows; se publican binarios tanto amd64 como arm64. Recomendamos ejecutar SSLcat bajo systemd en Linux para producción.
Mínimo: 512 MB de RAM, 100 MB de disco. Recomendado: 2 GB de RAM, 1 GB de disco. Compilar desde el código fuente requiere Go 1.21+.
Todos ellos. WebSocket se reenvía de forma transparente al upstream; SSE sobre HTTP/2 / HTTP/3 está ajustado para que los tiempos de espera de escritura no puedan interrumpir los streams de larga duración; los sitios PHP funcionan a través de un backend FastCGI.
El panel de administración lee los logs con tailing acotado (los archivos de log grandes nunca se cargan en memoria). También puedes hacer tail directamente al archivo de log configurado. A través de MCP, los clientes de IA pueden obtener la cola con un recurso como `sslcat://logs/access?since=10m&domain=foo.com&limit=200`.
SSLcat apunta a Let's Encrypt de forma predeterminada: una CA pública gratuita cuya razón de ser es hacer que HTTPS sea el estándar. Aún puedes subir certificados comerciales vía `cert_upload`; SSLcat valida el análisis PEM, la coincidencia certificado/clave y la cobertura CN/SAN.
1) `sslcat doctor --json` ejecuta una autocomprobación en un solo paso sobre configuración, puertos, directorio de certificados, raíces de sitios, upstreams y estado de tokens MCP. 2) `sslcat status --json` imprime la versión, parámetros de escucha y resumen de sitios / certificados / MCP. 3) Lee el log de errores de SSLcat y `${data_dir}/mcp_audit.YYYYMMDD.log`, o deja que la IA los lea mediante las herramientas MCP `error_log_list` / `error_log_tail` (cubre el propio SSLcat más cada sitio proxy / estático / php). 4) `sslcat proxy health-check --domain foo.com --include-routes --json` sondea el backend principal y cada backend de PathPrefixRule en paralelo. 5) El servidor expone su versión a través de los headers de respuesta `X-App-Version` / `X-Server-Version` para que puedas confirmar qué imagen está sirviendo realmente el tráfico.
v2.2.0-rc1 añade comandos de operaciones CLI: `sslcat status [--json]` (resumen del tiempo de ejecución), `sslcat doctor [--json]` (autocomprobación sobre configuración / puertos / certificados / raíces de sitios / upstreams / tokens MCP), `sslcat site list/add/update/delete/enable/disable` (CRUD para sitios estáticos y PHP — el borrado requiere `--yes` explícito), y `sslcat proxy health-check [--domain] [--include-routes] [--json]` (sondeo TCP). El `-config` global se puede colocar antes del subcomando. v2.3.0-rc1 añade las herramientas MCP `error_log_list` y `error_log_tail`, además de los recursos `sslcat://logs/error-sources` y `sslcat://logs/error{?id,kind,domain,since,keyword,limit,max_bytes}` para que los clientes de IA puedan listar y leer errores recientes del propio SSLcat y de sitios individuales. Internamente, `internal/mcp/logview` es un lector de logs acotado (por defecto al último 1 MB, máximo 4 MB) para que los archivos de log grandes no puedan bloquear la ruta de petición.
Ya entregado: integración MCP completa P1–P5 (v2.1.0), comandos CLI de operaciones y autocomprobación (v2.2.0-rc1), lectura de logs de errores por MCP más el lector de logs acotado (v2.3.0-rc1). Previsto: integración con Kubernetes, soporte multi-clúster, estrategias de caché avanzadas, un sistema de plugins y una API GraphQL.
MIT. El código, las issues y las releases están todos en GitHub: https://github.com/xurenlu/sslcat . Las issues, PRs y casos de uso adicionales en `docs/` son muy bienvenidos.
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues