Accueil / Sécurité WordPress / Cloudflare pour WordPress — Guide pratique 2025

Cloudflare pour WordPress — Guide pratique 2025

Cloudflare pour WordPress — Guide pratique 2025

Activer Cloudflare sur WordPress sans casser l’admin ni les revenus : configuration DNS, SSL/TLS (Full strict), IP réelle côté serveur, règles de cache by-pass, WAF/Firewall, rate limiting et purge. Guide 2025, pas-à-pas.

Cloudflare, c’est quoi ?

Cloudflare est un proxy inversé + CDN + WAF. Il protège et accélère ton site en plaçant son réseau mondial entre les visiteurs et ton serveur. Avantages clés : distribution du contenu statique, protection DDoS, filtrage des bots, TLS moderne, règles de cache et firewall granulaires.

Préparer ton domaine

  • Crée un compte Cloudflare et ajoute ton domaine.
  • Laisse l’import DNS se faire puis mets à jour les serveurs de noms chez ton registrar (fournis par Cloudflare).
  • Attends la propagation (quelques minutes à quelques heures).

DNS & proxy (nuage orange)

Dans l’onglet DNS de Cloudflare, assure-toi que les enregistrements A / AAAA de ton site (ex. @ et www) sont proxifiés (nuage orange). Cela active le CDN, le WAF et les règles Cloudflare.

SSL/TLS : choisir le bon mode

  • Mode recommandé : Full (strict) — nécessite un certificat valide ou un Origin Certificate Cloudflare sur ton serveur.
  • Always Use HTTPS : active la redirection automatique vers HTTPS.
  • HSTS : à activer seulement après avoir validé HTTPS partout.

Installer un Origin Certificate (optionnel, conseillé) : génère un certificat dans l’onglet SSL/TLS → Origin Server, installe-le côté serveur, puis configure Apache.

Récupérer l’IP réelle dans Apache

Par défaut, les logs voient l’IP de Cloudflare. Utilise mod_remoteip et déclare les plages Cloudflare comme trusted proxies.

1) Autoriser Cloudflare dans UFW

for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
  sudo ufw allow from $ip to any port 80,443 proto tcp
done
for ip in $(curl -s https://www.cloudflare.com/ips-v6); do
  sudo ufw allow from $ip to any port 80,443 proto tcp
done

2) Configurer mod_remoteip

sudo a2enmod remoteip

Crée /etc/apache2/conf-available/remoteip-cloudflare.conf :

RemoteIPHeader CF-Connecting-IP
# Ajoute ici les plages Cloudflare (v4 et v6)
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22
# ... (toutes les plages Cloudflare officielles)

Active la conf et redémarre :

sudo a2enconf remoteip-cloudflare
sudo systemctl restart apache2

Astuce : adapte le LogFormat pour consigner %a (IP client) si besoin.

Cache Rules / Page Rules pour WordPress

Objectif : ne pas mettre en cache l’admin et les sessions, mais accélérer les assets statiques. Utilise de préférence les Cache Rules (nouvelle interface). Si tu as encore les Page Rules, crée des règles équivalentes.

Bypass (admin, login, prévisualisation)

  • URI Path contains /wp-admin/Bypass cache
  • URI Path is /wp-login.phpBypass cache
  • Query String contains preview=trueBypass cache
  • (Optionnel) Cookie contains wordpress_logged_in_Bypass cache

Accélérer les assets statiques

  • URI Path matches *.css|*.js|*.jpg|*.jpeg|*.png|*.webp|*.svg|*.woff2Cache level: Cache Everything, Edge TTL 7–30 jours (selon fréquence de déploiement).
  • Respecte idéalement les en-têtes origin (Cache-Control) si déjà en place.

Important : évite de “Cache Everything” sur le HTML des pages loguées. Pour le blog public, tu peux l’activer avec prudence si tu gères bien les cookies et la purge lors des mises à jour.

Performances (Brotli, Early Hints, HTTP/3)

  • Brotli : ON
  • Early Hints : ON
  • HTTP/3 : ON
  • Auto Minify (HTML/CSS/JS) : à tester, attention aux conflits.
  • Rocket Loader : peut casser des scripts ; tester avant d’activer.
  • APO WordPress (optionnel, payant) : cache agressif des pages HTML au bord.

WAF, Firewall & Rate Limiting

Activer les règles gérées

  • Managed Rules : ON (inclure les règles spécifiques WordPress si disponibles).
  • Bot Fight Mode : à tester (peut générer des faux positifs).

Règles custom utiles

  • Challenge/Block si URI Path = /wp-login.php ET pays ≠ FR (à adapter).
  • Bloquer /xmlrpc.php si tu n’utilises pas Jetpack.
  • Rate limiting : ex. 10 requêtes/min/IP sur /wp-login.php (action : Block 10 min).

Purger le cache proprement

  • Cloudflare → Caching → Configuration → Purge Everything.
  • Préférer la purge ciblée (URL) après mise à jour d’un article.
  • En cas de dév front : active le Development Mode (désactive le cache 3h).

Dépannage courant

  • Boucle de redirection : vérifie le mode SSL (Full strict), la redirection HTTPS côté serveur et l’URL WordPress (Réglages → Général).
  • Admin lent ou cassé : by-pass le cache pour /wp-admin/ et /wp-login.php, désactive Rocket Loader.
  • Publicités/Analytics bloqués : ajoute les domaines Google dans ta CSP, désactive l’optimisation qui réécrit les scripts.
  • IP client incorrecte : revois la conf mod_remoteip + listes d’IP Cloudflare à jour.

Maillage interne

Pour aller plus loin :

FAQ

Quel mode SSL choisir sur Cloudflare pour WordPress ?

Full (strict). Installe un certificat valide côté serveur (Let’s Encrypt ou Origin Certificate) et active “Always Use HTTPS”.

Comment éviter de mettre l’admin en cache ?

Crée des Cache Rules (ou Page Rules) pour by-passer /wp-admin/*, /wp-login.php, les prévisualisations et les sessions (cookie wordpress_logged_in_).

Cloudflare casse mes scripts (theme ou pub), que faire ?

Désactive Rocket Loader, teste la minification. Ajoute les domaines tiers nécessaires (Analytics, AdSense) dans ta CSP si tu en utilises une.

Comment récupérer l’IP réelle du visiteur dans les logs ?

Active mod_remoteip, déclare les plages Cloudflare en “trusted proxy” et logue %a dans Apache.

APO WordPress est-il indispensable ?

Non, mais il peut améliorer la TTFB sur pages HTML via cache edge agressif. Option payante : à évaluer selon ton budget et ton trafic.

Étiquetté :