HTTP-01 est le type de challenge ACME le plus courant pour obtenir un certificat SSL. La CA vérifie que vous contrôlez un domaine en récupérant un fichier spécifique depuis votre serveur web via HTTP port 80. C’est plus simple que DNS-01 mais ne peut pas être utilisé pour les certificats wildcard.
Comment ça fonctionne
- Let’s Encrypt vous donne un jeton (une chaîne aléatoire)
- Vous créez un fichier à
http://votredomaine.com/.well-known/acme-challenge/{token} - Le contenu du fichier est l’autorisation de clé — le jeton combiné avec l’empreinte de votre clé de compte ACME
- Let’s Encrypt récupère cette URL depuis l’internet public
- Si le contenu correspond, la challenge est réussie et votre certificat est émis
Avec GetHTTPS, les étapes 1 et 3 sont gérées automatiquement — vous n’avez qu’à placer le fichier sur votre serveur avec les valeurs affichées à l’écran.
Comment placer le fichier de challenge
Via SSH (Linux/Nginx/Apache)
# Créer le répertoire
mkdir -p /var/www/html/.well-known/acme-challenge/
# Créer le fichier avec les valeurs exactes de GetHTTPS
echo "KEY_AUTHORIZATION_FROM_GETHTTPS" > /var/www/html/.well-known/acme-challenge/TOKEN_FROM_GETHTTPS
# Vérifier qu'il est accessible
curl http://yourdomain.com/.well-known/acme-challenge/TOKEN_FROM_GETHTTPS
Via cPanel File Manager
- Naviguez vers
public_html - Créez le dossier
.well-known→ à l’intérieur, créez le dossieracme-challenge - Créez un nouveau fichier nommé avec la valeur du jeton
- Collez l’autorisation de clé comme contenu du fichier
- Assurez-vous que les permissions sont 644 (lisible par le serveur web)
Via FTP
- Connectez-vous à la racine de votre site
- Créez le chemin de répertoire
.well-known/acme-challenge/ - Déposez un fichier texte nommé avec le jeton, contenant l’autorisation de clé
Configuration du serveur
Certains serveurs web doivent être configurés pour servir les fichiers depuis .well-known :
Nginx
# Ajoutez à votre bloc server si .well-known retourne une erreur 404
location /.well-known/acme-challenge/ {
root /var/www/html;
allow all;
}
Apache
Apache sert généralement .well-known par défaut. Sinon :
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
<Directory "/var/www/html/.well-known/acme-challenge/">
AllowOverride None
Options None
Require all granted
</Directory>
Node.js / Express
app.use('/.well-known/acme-challenge', express.static('challenges'));
Exigences
- Le domaine doit résoudre vers une adresse IP publique de votre serveur
- Le port 80 doit être ouvert — Let’s Encrypt valide toujours via HTTP, pas HTTPS
- La réponse doit retourner HTTP 200 OK
- Pas de redirections inter-domaines — les redirections HTTP→HTTPS sur le même domaine sont OK
- Le fichier doit être accessible sans authentification (pas de Basic Auth, pas de page de connexion)
Quand utiliser HTTP-01
| Scénario | HTTP-01 ? |
|---|---|
| Certificat mono-domaine | ✅ Oui — option la plus simple |
| Certificat domaine + www | ✅ Oui — une challenge par nom |
Certificat wildcard (*.example.com) | ❌ Non — utilisez DNS-01 |
| Le port 80 est bloqué | ❌ Non — utilisez DNS-01 |
| Derrière un proxy Cloudflare | ⚠️ Peut nécessiter de passer le DNS en nuage gris d’abord |
| Aucun accès serveur | ❌ Non — utilisez DNS-01 (nécessite uniquement l’accès DNS) |
HTTP-01 vs DNS-01
| HTTP-01 | DNS-01 | |
|---|---|---|
| Ce que vous faites | Placer un fichier sur votre serveur | Ajouter un enregistrement TXT dans le DNS |
| Accès requis | Système de fichiers du serveur web | Paramètres DNS du domaine |
| Port requis | Port 80 ouvert | Aucun |
| Support wildcard | ❌ | ✅ |
| Rapidité | Instantané (si le fichier est accessible) | 1-15 min (propagation DNS) |
| Fonctionne derrière un CDN | ⚠️ Peut nécessiter un contournement du CDN | ✅ Fonctionne toujours |
| Idéal pour | La plupart des certificats mono-domaine | Wildcards, sans accès serveur, configurations CDN |
Dépannage
Le fichier de challenge retourne une erreur 404
- Vérifiez le chemin exact — doit être
/.well-known/acme-challenge/TOKENsans barre oblique supplémentaire - Vérifiez les permissions du fichier — chmod 644
- Nginx : Votre configuration peut bloquer les dotfiles. Ajoutez le bloc
locationci-dessus - cPanel : Le gestionnaire de fichiers peut masquer
.well-known— activez « Afficher les fichiers cachés »
La challenge échoue malgré un fichier accessible
- Vérifiez depuis l’extérieur de votre réseau :
curl http://votredomaine.com/.well-known/acme-challenge/TOKENdepuis une autre machine ou utilisez un outil en ligne - Le DNS pointe peut-être vers un autre serveur — vérifiez que
dig +short votredomaine.comretourne l’IP de votre serveur - Proxy Cloudflare : Passez temporairement en DNS-only (nuage gris) pendant la validation
Le port 80 est bloqué
Certains hébergeurs ou pare-feu bloquent le port 80. Options :
- Ouvrir le port 80 (même temporairement pour la validation)
- Passer à la challenge DNS-01 — ne nécessite pas le port 80
- Demander à votre hébergeur d’autoriser
.well-knownà travers leur proxy
Erreur « too many requests »
Vous avez atteint les limites de débit de Let’s Encrypt. Attendez et réessayez. La vérification préalable de GetHTTPS aide à éviter les tentatives gaspillées en vérifiant l’accessibilité du fichier avant la soumission.
Questions fréquentes
Puis-je supprimer le fichier de challenge après avoir obtenu le certificat ?
Oui. Le fichier n’est nécessaire que pendant la validation. Une fois votre certificat émis, supprimez le répertoire .well-known/acme-challenge/ et son contenu. Vous créerez de nouveaux fichiers lors du renouvellement.
Le fichier doit-il être servi en HTTPS ?
Non. Let’s Encrypt valide toujours HTTP-01 via HTTP simple (port 80), même si votre site supporte HTTPS. Les redirections HTTP→HTTPS sur le même domaine sont suivies, mais la requête initiale est toujours en HTTP.
Puis-je utiliser HTTP-01 pour plusieurs domaines dans un seul certificat ?
Oui. Chaque domaine dans le certificat nécessite son propre fichier de challenge. Si vous obtenez un certificat pour example.com et www.example.com, vous placez deux fichiers — un jeton par domaine. GetHTTPS les traite séquentiellement.
Qu’est-ce que la « vérification préalable » dans GetHTTPS ?
Avant de soumettre à Let’s Encrypt, GetHTTPS vérifie que votre fichier de challenge est accessible depuis l’internet public (via DNS-over-HTTPS de Google). Cela détecte les erreurs de configuration avant qu’elles ne consomment une tentative de limite de débit — une fonctionnalité que les autres outils dans le navigateur n’ont pas.