Comment configurer Cloudflare avec Vercel
Je fais la gestion DNS de mes projets sur Cloudflare. J'ai eu quelques pépins techniques en configurant mes noms de domaine avec des projets hébergés chez Vercel. Je recevais quotidiennement des courriels de Vercel me signalant que la configuration DNS de mes projets était incorrecte. Je me suis penché sur le problème pour tenter de trouver une solution.
Vercel annonce d'emblé dans sa documentation qu'ils ne recommandent pas l'utilisation du proxy Cloudflare:
It is highly recommended that you don't use the Cloudflare CDN with Vercel. [1]
Si on veut quand même utiliser le proxy Cloudflare, Vercel indique qu'on doit permettre les requête HTTP (sans SSL) sur le path /.well-known/*
.
Désactiver HTTPS pour .well-known
On peut désactiver le trafic HTTPS avec les Pages rules de Cloudflare:
- Visiter Rules > Pages Rules
- Create Page Rules
- Dans le champ
If the URL matches
, entrer le domaine avec les wildcards nécessaires:*exemple.com/.well-known/*
- Sélectionner
SSL > Off
Forcer le trafic HTTPS
Il faut par ailleurs rediriger toutes les autres requêtes HTTP vers HTTPS manuellement avec une autre règle (même si Cloudflare a une option pour le faire automatiquement):
- Visiter SSL/TLS > Edge Certificates
- Désactiver
Always Use HTTPS
- Visiter Rules > Pages Rules
- Create Page Rule
- Dans le champ
If the URL matches
, entrer le domaine*domaine.com/*
- Sélectionner
Always Use HTTPS
- Enregistrer, et mettre cette règle en 2e position
Tester la configuration
On peut confirmer que la nouvelle configuration fonctionne avec la commande suivante, qui devrait retourner un 404:
curl http://example.com/.well-known/acme-challenge -I
L'interface de Vercel se met rapidement à jour quand la configuration est tip top 🎉