Redirection HTTP vers HTTPS dans Nginx : Bonnes pratiques

Découvrez les méthodes les plus efficaces pour rediriger automatiquement tout le trafic HTTP vers HTTPS dans Nginx, garantissant ainsi des connexions sécurisées pour tous vos visiteurs.

La sécurisation de votre site web avec HTTPS est devenue une norme indispensable. Dans ce guide, nous allons voir comment configurer Nginx pour rediriger tout le trafic HTTP vers HTTPS de manière propre et efficace.

La méthode recommandée

La meilleure pratique consiste à utiliser une directive server dédiée pour écouter le port 80 et effectuer une redirection permanente (code 301) vers le port 443.

server {
    listen 80;
    server_name votre-domaine.com www.votre-domaine.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name votre-domaine.com www.votre-domaine.com;
    
    # Vos configurations SSL ici
}

Pourquoi utiliser la redirection 301 ?

Le code de statut 301 Moved Permanently indique aux navigateurs et aux moteurs de recherche que la ressource a été déplacée définitivement. Cela permet de transférer le « jus SEO » (link equity) de vos pages HTTP vers vos pages HTTPS.

Points clés à retenir

  • Performance : La redirection est traitée très rapidement par Nginx avant même de traiter la requête complète.
  • Sécurité : Assurez-vous d'avoir un certificat SSL valide (via Let's Encrypt par exemple) avant d'activer la redirection.
  • HSTS : Pour une sécurité accrue, envisagez d'ajouter l'en-tête Strict-Transport-Security dans votre bloc serveur HTTPS pour forcer les navigateurs à utiliser uniquement HTTPS lors des visites futures.