Cree un valor de cabecera HSTS con max-age y preload
Una duración de 31536000 segundos con ambas opciones activadas da una sola línea: primero max-age, luego includeSubDomains y después preload. Péguela en su servidor o en la regla del proxy sin unir fragmentos a mano. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Edad máxima (max-age)
- 31 536 000
- Valor
- max-age=31536000; includeSubDomains; preload
Este generador de valores de cabecera HSTS convierte una duración en segundos y dos opciones booleanas claras en un valor Strict-Transport-Security con un orden correcto. Siempre comienza con la directiva obligatoria max-age y solo añade includeSubDomains y preload cuando usted lo solicita. Las duraciones negativas y los tipos de campo incorrectos se rechazan en vez de convertirse en una configuración aparentemente válida que no expresa la política prevista.
Elija max-age como una duración de política deliberada
Este generador acepta esa duración como entero no negativo y la escribe como primera directiva, sin notación exponencial, redondeo ni unidades añadidas. El valor cero es válido y suele utilizarse para pedir a los navegadores que eliminen una política HSTS guardada anteriormente. Los valores positivos mantienen activa la política hasta que vence el plazo recordado o hasta que otra respuesta válida la sustituye.
Elija la cifra de acuerdo con su despliegue y su plan de reversión, no como un simple detalle de formato. La herramienta rechaza valores fraccionarios, ausentes, no numéricos o negativos porque no pueden representar con seguridad la directiva de segundos enteros requerida.
Comprenda el alcance de includeSubDomains y preload
Haga un inventario de las zonas DNS delegadas y de los servicios gestionados por terceros antes de activarla. El token preload cumple otra función: expresa una intención asociada a los programas de precarga de los navegadores, pero añadir la palabra no presenta el dominio, no garantiza su aceptación ni modifica de inmediato ninguna lista. Esos programas aplican sus propios requisitos vigentes de admisión y retirada, que usted debe consultar por separado.
El generador permite ambas opciones de forma independiente porque construye la cabecera de manera determinista, no impone las normas de un programa concreto. Los tokens seleccionados aparecen con su grafía convencional después de max-age y en un orden estable; los omitidos o falsos no aparecen. Ese orden facilita revisiones, pruebas de referencia y diferencias de infraestructura.
Despliegue y compruebe el valor generado con seguridad
Copie el valor devuelto en la cabecera de respuesta Strict-Transport-Security; no lo trate como una línea de cabecera completa. La configuración de un servidor web suele ofrecer un campo para el nombre y otro para el valor. Pruebe la respuesta final en el perímetro público, porque el código de la aplicación, un proxy, una red de distribución o el panel del alojamiento pueden sobrescribir, duplicar o eliminar la cabecera.
Puede iniciar un despliegue gradual con una duración positiva corta, observar el servicio y aumentarla cuando todos los hosts pertinentes demuestren fiabilidad. Si activa includeSubDomains, pruebe también varios hosts anidados. Si activa preload, confirme por separado que el dominio cumple los requisitos del programa del navegador antes de presentarlo.
La función es pura y determinista: entradas iguales producen siempre la misma cadena, no se efectúan solicitudes externas ni se guarda configuración.
Qué puede hacer con ella
Genere configuración para un proxy inverso
Convierta opciones HSTS revisadas en un valor estable para un proxy, equilibrador de carga o regla perimetral.
Normalice plantillas de infraestructura
Mantenga la misma grafía y orden de directivas en todos los entornos sin construir cadenas manualmente.
Planifique un despliegue de HSTS
Compare políticas cortas, largas, aplicables a subdominios y preparadas para precarga antes de cambiar producción.
Preguntas frecuentes
¿Incluye el resultado el nombre de la cabecera?
No. El valor está destinado al campo Strict-Transport-Security que configure su servidor, proxy o aplicación.
¿Puede max-age ser cero?
Sí. Cero es un valor no negativo válido y solicita a un navegador compatible que caduque la política HSTS almacenada para ese host.
¿Qué ocurre si max-age es negativo?
La solicitud falla con un error de entrada no válida, pues una duración negativa no puede formar una directiva max-age válida.
¿Añadir preload incorpora mi dominio a una lista?
No. Solo añade el token al valor. Los programas de precarga tienen procesos independientes de admisión, presentación y retirada.
¿Debo activar siempre includeSubDomains?
La directiva extiende la política a todo el árbol.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/security/hsts-header-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"max_age":31536000}'const res = await fetch("https://api.kit.forhosting.com/security/hsts-header-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"max_age": 31536000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/hsts-header-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"max_age": 31536000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/hsts-header-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"max_age":31536000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"max_age":31536000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/hsts-header-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"max_age": 31536000
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.hsts_header_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
El resultado queda listo para una cabecera de respuesta HTTPS, una regla de proxy inverso o una plantilla de infraestructura.
Elija max-age como una duración de política deliberada
La directiva obligatoria max-age indica a un navegador compatible durante cuántos segundos debe recordar que solo puede acceder a un host mediante HTTPS. Antes de aumentarla, confirme que HTTPS funciona en todas las rutas, que los certificados se renuevan de forma fiable y que las redirecciones no ocultan dependencias que solo admiten HTTP. El resultado es únicamente el valor; su servidor o proxy debe añadir el nombre Strict-Transport-Security a una respuesta HTTPS.
Comprenda el alcance de includeSubDomains y preload
Active includeSubDomains cuando la política de uso exclusivo de HTTPS deba abarcar el host indicado y todos los hosts situados debajo de él. Esta opción puede proteger un árbol de dominios completo, pero también puede volver inaccesible un subdominio de desarrollo, proveedor o sistema heredado que no disponga de HTTPS operativo.
Despliegue y compruebe el valor generado con seguridad
Envíe HSTS únicamente a través de HTTPS: los navegadores lo ignoran si llega por una conexión insegura, y una redirección HTTP por sí sola no establece la política recordada. El navegador la ejecuta localmente y cada solicitud automatizada a la API cuesta $0.002.
Preguntas técnicas
¿Cuánto cuesta una solicitud a la API?
Cada solicitud a la API cuesta $0.002. El mismo generador puro puede ejecutarse localmente en el navegador.