# Referencia de ajustes de SSL/TLS

> Todos los ajustes de SSL/TLS del borde con sus valores y su valor por defecto, los límites de los certificados de origen, la API, la CLI y MCP.

## Ajustes del borde

Estas claves forman parte de los ajustes del borde de la zona (`GET`/`PATCH /v1/orgs/{org}/zones/{zone}/edge`). Cada una se puede sustituir para un nombre en `hosts.<nombre>`, por ejemplo `hosts.www.example.com.origin.tls_verify`. Consulta [Ajustes por nombre](https://developers.openwaf.dev/es/rules/per-name-settings/).

| Clave | Valores | Por defecto | Efecto |
|---|---|---|---|
| `origin.scheme` | `https`, `http` | `https` | Esquema de la conexión con el origen. |
| `origin.port` | `0`–`65535` | `0` | Puerto del origen; `0` = el del esquema (443 u 80). |
| `origin.tls_verify` | `full`, `full_strict` | `full_strict` en las zonas nuevas | `full` cifra sin verificar; `full_strict` verifica cadena, fechas, nombre y revocación (si falla, `526`). Consulta [Modos de TLS con el origen](https://developers.openwaf.dev/es/ssl/origin-tls/). |
| `origin.server_name` | Nombre de host en minúsculas, o `""` | `""` | Nombre que se envía en SNI y se verifica. `""` = el nombre de host del origen, o el del sitio si el origen es una IP. |
| `origin.client_cert` | `true`, `false` | `false` | El borde presenta su certificado de cliente cuando el origen lo pide. Consulta [Peticiones al origen autenticadas](https://developers.openwaf.dev/es/ssl/authenticated-origin-pulls/). |
| `hsts.max_age` | De `0` a `63072000` segundos | `0` | max-age de `Strict-Transport-Security`; `0` = sin cabecera. Consulta [HSTS](https://developers.openwaf.dev/es/ssl/hsts/). |
| `hsts.include_subdomains` | `true`, `false` | `false` | Añade `includeSubDomains`. |
| `hsts.preload` | `true`, `false` | `false` | Añade `preload`. |

Los ajustes TLS de `origin.*` solo se aplican cuando `origin.scheme` es `https`.

Un `PATCH` es un JSON merge patch: solo cambian los campos que envías. Necesita el rol `tech` o `admin` y una cabecera `X-Change-Reason` (de 1 a 500 caracteres); `If-Match: "<versión>"` rechaza el cambio si la zona cambió entretanto y `?dry_run=1` valida y devuelve las diferencias sin aplicar nada. Los valores no válidos se rechazan con un `422`.

## Límites de los certificados de origen

| Elemento | Límite |
|---|---|
| Nombres por certificado | De 1 a 100: la zona, nombres por debajo o comodines `*.<nombre>` |
| Tipos de clave generada | `ecdsa_p256` (por defecto), `rsa2048` |
| Claves de una CSR | ECDSA P-256 o P-384; RSA de 2048 a 8192 bits |
| Validez | 7, 30, 90, 365, 730, 1095 o 5475 días (por defecto 5475) |
| Clave privada | Se devuelve una sola vez y nunca se guarda |

## Rutas de la API

Las rutas son relativas a `https://dash.openwaf.dev`.

| Ruta | Rol | Para qué |
|---|---|---|
| `GET /v1/orgs/{org}/zones/{zone}/certs` | cualquiera | Certificados del borde (`items`) y estado del certificado de cada nombre con proxy (`sites`). |
| `GET /v1/orgs/{org}/zones/{zone}/origin-tls/status` | cualquiera | Estado del origen de cada nombre con proxy (se guarda 60 s). |
| `GET /v1/orgs/{org}/zones/{zone}/origin-certs` | cualquiera | Certificados de origen, sin claves. |
| `POST /v1/orgs/{org}/zones/{zone}/origin-certs` | `tech` | Emite un certificado de origen (`?dry_run=1` solo valida). |
| `DELETE /v1/orgs/{org}/zones/{zone}/origin-certs/{id}` | `tech` | Revoca un certificado de origen (idempotente). |
| `GET /v1/origin-tls/origin-ca.pem` | pública | Certificados de la OpenWAF Origin CA (PEM). |
| `GET /v1/origin-tls/edge-client-ca.pem` | pública | Certificados de la OpenWAF Edge Client CA (PEM), para mTLS. |
| `PATCH /v1/orgs/{org}/zones/{zone}/edge` | `tech` | Cambia `origin.*` y `hsts.*`. |

## CLI

| Orden | Para qué |
|---|---|
| `openwaf-cloud ctl certs list <zona>` | Certificados del borde y estado de cada sitio. |
| `openwaf-cloud ctl origin-tls status <zona>` | Estado del origen de cada nombre: modo, nombre verificado, mTLS, certificado y errores 525/526 en 24 h. |
| `openwaf-cloud ctl origin-tls ca [--client]` | PEM de la Origin CA (o, con `--client`, de la Edge Client CA). Sin token. |
| `openwaf-cloud ctl origin-certs list <zona>` | Certificados de origen. |
| `openwaf-cloud ctl origin-certs create <zona> <nombre>… --cert-out F [--key-out F] [--key-type ecdsa\|rsa] [--days N] [--csr F]` | Emite un certificado de origen. |
| `openwaf-cloud ctl origin-certs revoke <zona> <id>` | Revoca un certificado de origen. |
| `openwaf-cloud ctl zones set <zona> [--host <nombre>] origin.tls_verify=… origin.server_name=… origin.client_cert:=true hsts.max_age=…` | Cambia los ajustes. |

Todo cambio necesita `--reason "…"`; las opciones comunes están en la [CLI](https://developers.openwaf.dev/es/cli/).

## Herramientas MCP

| Herramienta | Para qué |
|---|---|
| `list_certificates` | Certificados del borde y estado de cada sitio con proxy. |
| `origin_tls_status` | Estado del origen de cada nombre con proxy. |
| `list_origin_certs` | Certificados de origen. |
| `create_origin_cert` | Emite un certificado de origen (en dos pasos). |
| `revoke_origin_cert` | Revoca un certificado de origen (en dos pasos). |
| `update_settings` | Cambia los ajustes `origin` y `hsts` (en dos pasos). |

Consulta el [servidor MCP](https://developers.openwaf.dev/es/mcp/).
