Tous les articles SSL SSL et certificats

Bonnes pratiques SSL/TLS pour 2026

La configuration SSL/TLS a considerablement evolue. Voici l’etat actuel des bonnes pratiques pour 2026 — ce qu’il faut activer, ce qu’il faut desactiver et ce qui arrive.

Versions de protocole

ProtocoleStatutAction
SSL 2.0, 3.0CasseDesactiver — vulnerabilites critiques (POODLE, DROWN)
TLS 1.0Obsolete (2021)Desactiver — vulnerabilite BEAST
TLS 1.1Obsolete (2021)Desactiver — pas de support des chiffrements modernes
TLS 1.2SecuriseActiver — avec chiffrements AEAD uniquement
TLS 1.3Standard actuelActiver — le plus rapide, le plus securise

Nginx : ssl_protocols TLSv1.2 TLSv1.3; Apache : SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

Suites de chiffrement

TLS 1.3 (aucune configuration necessaire)

Les 5 suites de chiffrement sont toutes securisees. N’essayez pas de personnaliser — vous ne pouvez pas faire mieux.

TLS 1.2 (restreindre a AEAD uniquement)

# Nginx
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers off;

Regles :

  • Uniquement les suites ECDHE-* — assure la confidentialite persistante
  • Uniquement *-GCM-* ou *-CHACHA20-* — chiffrements AEAD uniquement
  • Pas de chiffrements CBC — vulnerables a BEAST, Lucky13
  • ssl_prefer_server_ciphers off — laisser le client choisir (les clients modernes choisissent la meilleure option)

Gestion des certificats

PratiquePourquoi
Utiliser des cles ECDSA P-256Plus petites, plus rapides que RSA 2048
Automatiser le renouvellementLa validite de 47 jours d’ici 2029 rend le renouvellement manuel impraticable
Servir fullchain.pemPrevient les erreurs de chaine de confiance
Surveiller l’expiration des certificatsDefinir des alertes pour le jour 60 sur 90
Utiliser la surveillance Certificate TransparencyDetecter les certificats non autorises
Faire tourner les cles au renouvellementNe pas reutiliser les cles privees entre les certificats

En-tetes de securite

# HSTS -- toujours utiliser HTTPS (commencer avec un max-age court, augmenter ensuite)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

# Empecher le reniflage de type MIME
add_header X-Content-Type-Options "nosniff" always;

# Empecher le clickjacking
add_header X-Frame-Options "SAMEORIGIN" always;

# Mettre a niveau les sous-ressources non securisees
add_header Content-Security-Policy "upgrade-insecure-requests" always;

HSTS en profondeur ->

Optimisation des performances

ParametreConfigurationAvantage
HTTP/2listen 443 ssl http2;Multiplexage, compression des en-tetes
Cache de sessionssl_session_cache shared:SSL:10m;Evite le re-handshake pour les visiteurs de retour
Tickets de session desactivesssl_session_tickets off;Meilleure confidentialite persistante
OCSP staplingssl_stapling on;Verification de certificat plus rapide, meilleure confidentialite
Early data (0-RTT)Par defaut dans TLS 1.3Reprise a latence zero (utiliser avec precaution)

Configuration Nginx complete (prete pour la production)

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers off;

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;

    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    root /var/www/html;
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Test : Entrez votre domaine sur SSL Labs — cette configuration devrait obtenir la note A+.

Ce qu’il ne faut PAS faire

Mauvaise pratiquePourquoiQue faire a la place
ssl_protocols TLSv1 TLSv1.1;Obsolete, vulnerableTLS 1.2 + 1.3 uniquement
ssl_ciphers ALL;Inclut des chiffrements faiblesListe explicite ECDHE + AEAD
ssl_prefer_server_ciphers on; (TLS 1.3)Inutile — les chiffrements TLS 1.3 sont tous securisesoff
Utiliser cert.pem au lieu de fullchain.pemChaine manquante -> erreurs de confianceToujours fullchain.pem pour Nginx
Certificats auto-signes en productionAvertissements du navigateur, pas de confianceLet’s Encrypt (gratuit)
Meme cle privee pendant des anneesLimite le confinement des dommagesFaire tourner a chaque renouvellement
Pas de HSTSVulnerable aux attaques par retrogradationActiver apres les tests
max-age=0 pour HSTSDesactive effectivement HSTSCommencer a 300, augmenter a 63072000

Questions frequemment posees

Comment tester ma configuration SSL ?

SSL Labs Server Test — entrez votre domaine et obtenez un rapport detaille avec une note (A-F). Verifiez le support des protocoles, la force des chiffrements, la validite de la chaine et les vulnerabilites connues.

Quelle note dois-je viser ?

A+ pour les sites en production. Cela necessite : TLS 1.2+ uniquement, chiffrements AEAD, chaine valide, HSTS avec un long max-age. La configuration ci-dessus obtient A+.

A quelle frequence dois-je revoir ma configuration SSL ?

Annuellement, ou lorsqu’une nouvelle vulnerabilite est annoncee. Abonnez-vous a la page de statut de Let’s Encrypt et suivez le Mozilla SSL Configuration Generator pour des recommandations mises a jour.

Existe-t-il un outil qui genere la bonne configuration pour moi ?

Oui — Mozilla SSL Configuration Generator. Selectionnez votre serveur (Nginx, Apache, etc.), votre version de serveur, et il genere une configuration recommandee. Le profil “Modern” correspond aux pratiques de cet article.

Articles connexes

SSL et certificats 2026-05-08
Qu'est-ce que TLS 1.3 ? Tout ce qui a changé
TLS 1.3 est le standard de chiffrement actuel — handshake plus rapide, Forward Secrecy obligatoire, aucun algorithme hérité. Découvrez ce qui a changé par rapport à TLS 1.2, comment l'activer, et si vous devriez le forcer.
SSL et certificats 2026-05-08
Qu'est-ce que le Forward Secrecy (Perfect Forward Secrecy) ?
Le Forward Secrecy signifie que chaque connexion TLS utilise une cle unique. Meme si la cle privee de votre serveur est compromise, les communications passees ne peuvent pas etre dechiffrees. Decouvrez comment cela fonctionne et comment vous assurer qu'il est active.
SSL et certificats 2026-05-08
HSTS : HTTP Strict Transport Security expliqué
HSTS indique aux navigateurs de toujours utiliser HTTPS. Apprenez à configurer HSTS, quel max-age choisir, quand ajouter le preload, et les risques d'une mauvaise configuration.
Déploiement 2026-05-08
Comment installer un certificat SSL sur Nginx
Guide étape par étape pour installer un certificat SSL sur Nginx. Couvre l'upload des fichiers, la configuration complète du bloc serveur, les bonnes pratiques TLS, HTTP/2, HSTS, la configuration des redirections, les tests et le dépannage de 6 erreurs courantes.
Obtenez un certificat SSL gratuit dans votre navigateur
Aucune installation, aucun compte. Votre clé privée ne quitte jamais votre appareil.
Obtenir un certificat