La OpenWAF Origin CA es una autoridad de certificación gestionada por OpenWAF que emite certificados gratuitos para tus servidores de origen. El borde de OpenWAF confía en ella en Full (strict), junto a las CA públicas. Los navegadores no confían en ella, y no lo necesitan: los visitantes solo ven el certificado del borde.
Usa un certificado de origen cuando:
- el origen no tiene certificado público o no quieres renovarlo cada pocos meses;
- el nombre que verifica el borde no resuelve al origen, o el origen no es accesible desde Internet, de modo que una CA pública no puede validarlo.
Qué puedes pedir
| Campo | Reglas | Por defecto |
|---|---|---|
Nombres (hostnames) | De 1 a 100: la propia zona, nombres por debajo (www.example.com) o comodines *.<nombre> (*.example.com, *.shop.example.com). Nada fuera de la zona ni direcciones IP. Se pasan a minúsculas y sin repetir. | — |
Clave (key_type) | ecdsa_p256 o rsa2048, generada por OpenWAF, o tu propia CSR (csr). | ecdsa_p256 |
CSR (csr) | Una solicitud de certificado en PEM hecha en tu servidor, con una clave ECDSA P-256/P-384 o RSA de 2048 a 8192 bits. Solo se usa su clave pública: su sujeto y sus extensiones se ignoran y los nombres salen de hostnames. | — |
Validez (validity_days) | 7, 30, 90, 365, 730, 1095 o 5475 días. | 5475 (15 años) |
El certificado lleva los nombres como nombres alternativos DNS, el uso extendido de clave serverAuth, un número de serie aleatorio de 128 bits y, como nombre común, el primer nombre.
La clave privada se muestra una sola vez
Cuando OpenWAF genera la clave, la devuelve solo en la respuesta que emite el certificado. OpenWAF no la guarda ni la escribe en ningún registro, tampoco en la auditoría. Guárdala en ese momento; si la pierdes, emite otro certificado y revoca el anterior.
Con una CSR no se genera ninguna clave privada y la tuya nunca sale de tu servidor. Es la opción más segura.
Emitir un certificado
Necesitas el rol tech o admin; readonly puede ver la lista.
- Ve a SSL/TLS › Origen › Certificados de origen y pulsa Crear certificado.
- Escribe los nombres, uno por línea.
- En Clave privada, elige Generar una clave ECDSA P-256 (recomendado), Generar una clave RSA 2048 o Usar mi propia CSR, y escoge la Validez.
- Pulsa Crear y copia o descarga el certificado y la clave. No se pueden volver a mostrar.
# Clave generada por OpenWAF, escrita en un fichero 0600 y nunca impresa:
openwaf-cloud ctl origin-certs create example.com example.com '*.example.com' \
--cert-out origin.pem --key-out origin.key --reason "certificado del origen"
# Clave RSA, válida un año:
openwaf-cloud ctl origin-certs create example.com www.example.com --key-type rsa --days 365 \
--cert-out origin.pem --key-out origin.key --reason "certificado del origen"
# Con una CSR: la clave se queda en tu servidor.
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes \
-keyout origin.key -out origin.csr -subj "/CN=example.com"
openwaf-cloud ctl origin-certs create example.com example.com '*.example.com' --csr origin.csr \
--cert-out origin.pem --reason "certificado del origen"--cert-out recibe el certificado seguido del certificado de la Origin CA. Los ficheros existentes nunca se sobrescriben. Como todo cambio, la orden simula primero y pide confirmación (--yes sin terminal; --dry-run solo comprueba).
curl -s -X POST https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/origin-certs \
-H "Authorization: Bearer $OPENWAF_TOKEN" \
-H "Content-Type: application/json" \
-H "X-Change-Reason: certificado del origen" \
-d '{"hostnames": ["example.com", "*.example.com"], "key_type": "ecdsa_p256", "validity_days": 5475}'La respuesta es un 201 con certificate (sus metadatos), certificate_pem, private_key_pem (no aparece con csr) y ca_pem, enviada con Cache-Control: no-store. Añade ?dry_run=1 para validar sin emitir. Los errores de validación son un 422 con code invalid y el field afectado (hostnames, key_type, validity_days o csr).
create_origin_cert funciona en dos pasos: confirm=false comprueba la petición y confirm=true emite. Mejor pasa una csr, así ninguna clave privada pasa por la conversación.
{"zone": "example.com", "hostnames": ["example.com", "*.example.com"], "csr": "-----BEGIN CERTIFICATE REQUEST-----\n…", "reason": "certificado del origen", "confirm": false}Después: instala el certificado en tu servidor.
Ver los certificados
Cada certificado tiene un status (active, revoked o expired), además de sus nombres, tipo de clave, número de serie, huella SHA-256 y validez. Las claves nunca se incluyen.
SSL/TLS › Origen › Certificados de origen.
openwaf-cloud ctl origin-certs list example.comcurl -s https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/origin-certs \
-H "Authorization: Bearer $OPENWAF_TOKEN"list_origin_certs con {"zone": "example.com"}.
Revocar un certificado
Revoca un certificado cuya clave pueda haberse filtrado o que ya no uses. Los nodos del borde reciben la revocación con su siguiente configuración, normalmente en menos de un minuto, y desde entonces lo rechazan en Full (strict): un origen que siga sirviéndolo responderá 526. La revocación no se puede deshacer; emite otro certificado. El certificado sigue en la lista con status revoked, quién lo revocó y cuándo.
En SSL/TLS › Origen › Certificados de origen, pulsa Revocar en el certificado y confirma.
openwaf-cloud ctl origin-certs revoke example.com <id> --reason "clave filtrada"curl -s -X DELETE https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/origin-certs/$CERT_ID \
-H "Authorization: Bearer $OPENWAF_TOKEN" \
-H "X-Change-Reason: clave filtrada"La llamada es idempotente. Un certificado de otra zona u organización responde 404.
revoke_origin_cert con el id del certificado que devuelve list_origin_certs: confirm=false muestra el certificado y confirm=true lo revoca.
Los certificados de una zona borrada cuentan como revocados, aunque otra organización añada después el mismo dominio.
Descargar el certificado de la Origin CA
El certificado de la Origin CA es público. No lo necesitas en un servidor que solo habla con el borde de OpenWAF, pero algunas herramientas piden la cadena completa:
curl -fsS https://dash.openwaf.dev/v1/origin-tls/origin-ca.pem -o openwaf-origin-ca.pem
# o bien
openwaf-cloud ctl origin-tls caLa URL devuelve todos los certificados de la Origin CA que no han caducado; durante una rotación hay más de uno.
Auditoría e historial
Emitir y revocar quedan en la auditoría de la organización (zone.origin_cert.issue, zone.origin_cert.revoke) con los nombres, el número de serie y el motivo. Los certificados de origen viven en tu servidor, no en la configuración de la zona, así que no crean versiones de la zona y revertir una versión no les afecta.