Créez une valeur d’en-tête HSTS avec max-age et preload
Une durée de 31536000 secondes avec les deux options activées donne une seule ligne : max-age d’abord, puis includeSubDomains, puis preload. Collez-la dans votre serveur ou votre règle de proxy sans assembler de fragments à la main. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Âge maximal (max-age)
- 31 536 000
- Valeur
- max-age=31536000; includeSubDomains; preload
Ce générateur de valeur d’en-tête HSTS transforme une durée en secondes et deux options booléennes explicites en une valeur Strict-Transport-Security correctement ordonnée. Il commence toujours par la directive max-age obligatoire, puis ajoute includeSubDomains et preload uniquement si vous le demandez. Les durées négatives et les types de champs incorrects sont refusés au lieu de produire une configuration apparemment plausible qui ne traduit pas la politique voulue.
Choisissez consciemment la durée de la politique max-age
Ce générateur accepte cette durée sous forme d’entier positif ou nul et l’inscrit en première position, sans notation exponentielle, arrondi ni unité ajoutée. Zéro est une valeur valide, souvent employée pour demander aux navigateurs de supprimer une politique HSTS précédemment enregistrée. Une valeur positive maintient la politique jusqu’à l’expiration de la durée mémorisée ou jusqu’à son remplacement par une nouvelle réponse valide.
Choisissez ce nombre selon votre stratégie de déploiement et de retour arrière, et non comme un simple détail de formatage. L’outil refuse les valeurs fractionnaires, absentes, non numériques ou négatives, qui ne peuvent pas représenter sûrement le nombre entier de secondes requis.
Mesurez la portée de includeSubDomains et preload
Inventoriez les zones DNS déléguées et les services administrés séparément avant de l’activer. Le jeton preload joue un autre rôle : il signale une intention liée aux programmes de préchargement des navigateurs, mais son ajout ne soumet pas le domaine, ne garantit pas son acceptation et ne modifie aucune liste immédiatement. Ces programmes appliquent leurs propres conditions actuelles d’admission et de retrait, à consulter séparément.
Le générateur autorise les deux options indépendamment, car il construit une valeur déterministe sans faire respecter les règles d’un programme particulier. Les jetons sélectionnés conservent leur graphie conventionnelle après max-age dans un ordre stable; les options absentes ou fausses sont omises. Cette stabilité simplifie les revues, les tests de référence et les différences entre configurations générées.
Déployez et contrôlez prudemment la valeur produite
Copiez la valeur renvoyée dans l’en-tête de réponse Strict-Transport-Security, sans la considérer comme une ligne d’en-tête complète. La configuration d’un serveur web comporte généralement un champ pour le nom et un autre pour la valeur. Testez la réponse finale à la périphérie publique, car le code applicatif, un proxy, un réseau de diffusion ou un panneau d’hébergement peut remplacer, dupliquer ou supprimer l’en-tête.
Un déploiement progressif peut commencer par une courte durée positive, avec surveillance puis augmentation planifiée après validation de tous les hôtes concernés. Si includeSubDomains est actif, testez également plusieurs hôtes imbriqués. Si preload est actif, confirmez séparément l’éligibilité du domaine avant sa soumission.
La fonction est pure et déterministe : des entrées identiques produisent toujours la même chaîne, aucune requête ne sort de l’environnement et aucune configuration n’est conservée.
Cas d’usage
Générez une configuration de proxy inverse
Transformez des paramètres HSTS validés en valeur stable pour un proxy, un répartiteur ou une règle périphérique.
Uniformisez vos modèles d’infrastructure
Conservez la même graphie et le même ordre des directives entre environnements, sans assemblage manuel.
Préparez un déploiement HSTS
Comparez des politiques courtes, longues, étendues aux sous-domaines et prêtes au préchargement avant la production.
Questions fréquentes
Le résultat contient-il le nom de l’en-tête ?
Non. La valeur est destinée au champ Strict-Transport-Security configuré par votre serveur, proxy ou application.
max-age peut-il valoir zéro ?
Oui. Zéro est une valeur valide et demande à un navigateur compatible d’expirer la politique HSTS enregistrée pour cet hôte.
Que se passe-t-il si max-age est négatif ?
La requête échoue avec une erreur d’entrée invalide, car une durée négative ne forme pas une directive max-age valide.
Le jeton preload inscrit-il mon domaine sur une liste ?
Non. Il ajoute seulement le jeton à la valeur. L’admission, la soumission et le retrait relèvent de procédures distinctes.
Faut-il toujours activer includeSubDomains ?
Non, seulement si chaque sous-domaine fonctionne en connexion sécurisée. Sinon, un sous-domaine de test, d’un prestataire ou ancien peut devenir inaccessible. Recensez d’abord vos zones et services avant d’activer cette option.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"max_age": 31536000
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.hsts_header_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Le résultat est prêt pour un en-tête de réponse HTTPS, une règle de proxy inverse ou un modèle d’infrastructure.
Choisissez consciemment la durée de la politique max-age
La directive obligatoire max-age indique à un navigateur compatible pendant combien de secondes il doit mémoriser qu’un hôte doit être contacté exclusivement en HTTPS. Avant de l’augmenter, vérifiez que HTTPS fonctionne sur tous les parcours, que les certificats sont renouvelés de manière fiable et que les redirections ne masquent aucune dépendance limitée à HTTP. La sortie est seulement une valeur : votre serveur ou proxy doit l’associer au nom Strict-Transport-Security dans une réponse HTTPS.
Mesurez la portée de includeSubDomains et preload
Activez includeSubDomains lorsque la politique imposant HTTPS doit couvrir l’hôte nommé ainsi que tous les hôtes qui en dépendent. Ce choix peut protéger toute une arborescence, mais il peut aussi rendre inaccessible un sous-domaine de développement, un service ancien ou une ressource exploitée par un prestataire sans HTTPS opérationnel.
Déployez et contrôlez prudemment la valeur produite
Envoyez HSTS uniquement sur HTTPS : les navigateurs l’ignorent lorsqu’il arrive par une connexion non sécurisée, et une simple redirection HTTP n’installe pas la politique mémorisée. L’exécution dans le navigateur est locale; chaque requête automatisée à l’API coûte $0.002.
Questions techniques
Faut-il toujours activer includeSubDomains ?
Uniquement après avoir vérifié que tous les sous-domaines concernés disposent d’un HTTPS fiable. La directive couvre toute l’arborescence.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. Le même générateur pur peut fonctionner localement dans le navigateur.