15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
01.11.2024
2 +1

Clés de chiffrement publiques et privées SSL : Un guide complet pour 2025

La communication sécurisée et chiffrée est l’épine dorsale de chaque site web digne de confiance. Que vous gériez une boutique e-commerce, un blog WordPress ou une API personnalisée, le chiffrement SSL/TLS protège les données de vos utilisateurs contre l’interception et la manipulation. Au cœur de cette protection se trouve un concept cryptographique puissant : les paires de clés publiques et privées.

Ce guide explique exactement comment fonctionnent les clés publiques et privées SSL, pourquoi elles sont importantes, et comment les mettre en œuvre et les gérer efficacement — que vous hébergiez sur un VPS, un serveur dédié ou un hébergement partagé.

Que sont les clés publiques et privées SSL ?

SSL (Secure Sockets Layer) et son successeur moderne TLS (Transport Layer Security) reposent sur le chiffrement asymétrique — un système cryptographique qui utilise deux clés mathématiquement liées : une clé publique et une clé privée. Ensemble, elles forment une paire de clés qui permet une communication sécurisée et authentifiée entre un client (comme un navigateur web) et un serveur.

La clé publique

La clé publique est, comme son nom l’indique, rendue publiquement disponible. Elle est intégrée directement dans votre certificat SSL/TLS, qui est installé sur votre serveur web et présenté à chaque visiteur qui se connecte à votre site. N’importe qui peut utiliser la clé publique pour chiffrer des données, mais ces données chiffrées ne peuvent être déverrouillées que par sa clé privée correspondante.

Pensez-y comme à un cadenas : vous pouvez distribuer des milliers de cadenas ouverts (clés publiques) à quiconque souhaite vous envoyer un message sécurisé, mais seul vous possédez la clé (clé privée) qui les ouvre.

La clé privée

La clé privée est le composant le plus sensible de votre configuration SSL. Elle est générée sur votre serveur et ne doit jamais le quitter. Cette clé est utilisée pour déchiffrer les données qui ont été chiffrées avec la clé publique correspondante. L’ensemble du modèle de sécurité SSL dépend de la confidentialité absolue de la clé privée.

Si un attaquant accède à votre clé privée, il peut :

  • Déchiffrer tout le trafic chiffré intercepté
  • Usurper l’identité de votre serveur auprès d’utilisateurs sans méfiance
  • Effectuer des attaques de type man-in-the-middle (MITM) sans être détecté

C’est pourquoi les environnements serveur sécurisés — comme ceux offerts par les serveurs dédiés avec accès root complet et isolation au niveau matériel — sont essentiels pour les déploiements en production.

Comment les clés publiques et privées fonctionnent dans une connexion SSL/TLS

Le processus d’établissement d’une connexion HTTPS sécurisée s’appelle la poignée de main SSL/TLS. Voici une explication détaillée, étape par étape, de la façon dont les clés publiques et privées sont utilisées tout au long de ce processus.

Étape 1 : Le Client Hello

Lorsqu’un navigateur utilisateur tente de se connecter à votre site web HTTPS, il initie la poignée de main en envoyant un message Client Hello au serveur. Ce message inclut :

  • Les versions du protocole SSL/TLS que le client supporte
  • Une liste de suites de chiffrement supportées (algorithmes de chiffrement)
  • Un nombre généré aléatoirement utilisé plus tard dans la dérivation de clé
  • Les méthodes de compression supportées

À ce stade, aucun chiffrement n’a encore eu lieu. Le client annonce simplement ses capacités.

Étape 2 : Le Server Hello et la présentation du certificat

Le serveur répond avec un message Server Hello, qui inclut :

  • La version SSL/TLS sélectionnée et la suite de chiffrement
  • Un autre nombre généré aléatoirement
  • Le certificat SSL du serveur, qui contient la clé publique du serveur et est signé par une autorité de certification (CA) de confiance

Le client valide ensuite le certificat en vérifiant :

  1. Qu’il a été émis par une CA de confiance (comme Let’s Encrypt, DigiCert ou Sectigo)
  2. Qu’il n’a pas expiré
  3. Que le nom de domaine correspond au Common Name (CN) ou au Subject Alternative Name (SAN) du certificat
  4. Que le certificat n’a pas été révoqué (via CRL ou OCSP)

Si l’une de ces vérifications échoue, le navigateur affiche un avertissement de sécurité et la connexion est généralement interrompue.

Étape 3 : Échange de clés — Où les clés publiques/privées font le travail lourd

Une fois le certificat validé, le client et le serveur doivent convenir d’une clé de session partagée — une clé de chiffrement symétrique utilisée pour chiffrer toutes les données réelles pendant la session. C’est là que la paire de clés publique/privée joue son rôle le plus critique.

Dans l’échange de clés RSA traditionnel :

  1. Le client génère un secret pré-maître aléatoire
  2. Le client chiffre le secret pré-maître en utilisant la clé publique du serveur (extraite du certificat SSL)
  3. Le secret pré-maître chiffré est envoyé au serveur
  4. Le serveur utilise sa clé privée pour déchiffrer le secret pré-maître
  5. Le client et le serveur dérivent indépendamment la même clé de session à partir du secret pré-maître et des nombres aléatoires précédemment échangés

Dans le TLS 1.3 moderne avec ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) :

Le processus d’échange de clés est encore plus sécurisé. Au lieu de chiffrer directement un secret pré-maître, les deux parties contribuent à générer la clé de session en utilisant des paires de clés éphémères. Cela fournit la Perfect Forward Secrecy (PFS), ce qui signifie que même si la clé privée est compromise à l’avenir, les sessions passées ne peuvent pas être déchiffrées.

Étape 4 : Établissement du chiffrement symétrique pour le transfert de données

Une fois que les deux parties partagent la même clé de session, la poignée de main SSL est complète. Toute la communication ultérieure — chaque requête HTTP, réponse, cookie et soumission de formulaire — est chiffrée en utilisant le chiffrement symétrique (généralement AES-256), qui est beaucoup plus rapide que le chiffrement asymétrique pour le transfert de données en masse.

La paire de clés publique/privée n’est plus directement impliquée à ce stade. Son rôle était d’établir de manière sécurisée la clé de session ; le chiffrement symétrique prend le relais à partir de là.

Pourquoi le chiffrement asymétrique n’est utilisé que pour la poignée de main

Une question courante est : *si le chiffrement par clé publique/privée est si sécurisé, pourquoi ne pas l’utiliser pour toutes les données ?*

La réponse est la performance. Le chiffrement asymétrique est coûteux en calcul — des ordres de grandeur plus lent que le chiffrement symétrique. Utiliser RSA ou ECC pour chiffrer des gigaoctets de vidéo en continu ou de requêtes de base de données serait impratique.

La solution élégante que SSL/TLS utilise est une approche hybride :

PhaseType de chiffrementObjectif
Poignée de mainAsymétrique (RSA/ECC)Échanger de manière sécurisée la clé de session
Transfert de donnéesSymétrique (AES)Chiffrement rapide des données en masse
AuthentificationSignatures numériquesVérifier l’identité du serveur

Ce modèle hybride vous donne la sécurité du chiffrement asymétrique avec la vitesse du chiffrement symétrique.

Meilleures pratiques de gestion des clés SSL

Générer un certificat SSL n’est que le début. La gestion appropriée des clés est ce qui maintient votre infrastructure sécurisée au fil du temps. Voici les meilleures pratiques essentielles que chaque administrateur système devrait suivre.

1. Utilisez des longueurs de clé suffisamment fortes

Les clés faibles peuvent être cassées par des attaques par force brute ou mathématiques. Suivez ces normes minimales :

  • Clés RSA : Utilisez 2048-bit comme minimum absolu ; 4096-bit est recommandé pour les environnements haute sécurité
  • Clés ECC : Utilisez 256-bit (P-256) ou supérieur — ECC fournit une sécurité équivalente à RSA avec des tailles de clé beaucoup plus petites, améliorant les performances de la poignée de main
  • Évitez les algorithmes obsolètes : N’utilisez pas MD5, SHA-1 ou SSL 3.0/TLS 1.0/1.1 — ceux-ci sont dépréciés et vulnérables

2. Protégez votre clé privée à tout prix

Votre fichier de clé privée (généralement server.key ou privkey.pem) doit être traité comme le fichier le plus sensible de votre serveur :

  • Définissez des permissions de fichier strictes : chmod 600 /etc/ssl/private/server.key
  • Assurez-vous que le fichier est possédé uniquement par root ou l’utilisateur du serveur web
  • Ne transmettez jamais la clé privée par email, chat ou canaux non chiffrés
  • Ne la stockez jamais dans un répertoire accessible au public ou un référentiel de contrôle de version (par exemple, GitHub)
  • Envisagez d’utiliser un module de sécurité matériel (HSM) pour les environnements d’entreprise

3. Renouvelez régulièrement les certificats SSL

Les certificats SSL ont des dates d’expiration. Un certificat expiré provoque des avertissements du navigateur qui détruisent la confiance des utilisateurs et peuvent nuire à votre classement SEO. Les meilleures pratiques incluent :

  • Utilisez Let’s Encrypt avec Certbot pour des certificats gratuits à renouvellement automatique de 90 jours
  • Configurez des tâches cron de renouvellement : certbot renew --quiet s’exécutant deux fois par jour
  • Surveillez l’expiration du certificat avec des outils comme SSL Labs, Zabbix ou Nagios
  • Pour les certificats commerciaux, achetez-les auprès d’un fournisseur fiable — AlexHost propose des certificats SSL pour les domaines de tous types

4. Implémentez la redirection HTTPS

Avoir un certificat SSL installé ne suffit pas — vous devez vous assurer que tout le trafic l’utilise. Ajoutez ce qui suit à votre configuration Apache ou Nginx :

Apache :

<VirtualHost *:80>
    ServerName yourdomain.com
    Redirect permanent / https://yourdomain.com/
</VirtualHost>

Nginx :

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

5. Activez HTTP Strict Transport Security (HSTS)

HSTS indique aux navigateurs d’utiliser toujours HTTPS pour votre domaine, même si un utilisateur tape http:// manuellement :

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Une fois que vous êtes confiant dans votre configuration SSL, soumettez votre domaine à la liste de préchargement HSTS pour une protection maximale.

6. Faites pivoter les clés après tout incident de sécurité

Si vous soupçonnez que votre clé privée a été compromise — ou si un serveur est désaffecté — immédiatement :

  1. Générez une nouvelle paire de clés
  2. Soumettez une nouvelle demande de signature de certificat (CSR) à votre CA
  3. Installez le nouveau certificat
  4. Révoquez l’ancien certificat via le tableau de bord de votre CA

Comment générer une paire de clés SSL et une CSR sur Linux

Si vous gérez votre propre serveur, voici comment générer une clé privée et une demande de signature de certificat (CSR) en utilisant OpenSSL :

Générez une clé privée RSA 2048-bit

openssl genrsa -out server.key 2048

Générez une CSR à partir de la clé privée

openssl req -new -key server.key -out server.csr

Vous serez invité à entrer les détails de votre organisation, notamment :

  • Pays (C)
  • État/Province (ST)
  • Localité (L)
  • Organisation (O)
  • Common Name (CN) — cela doit correspondre exactement à votre nom de domaine

Vérifiez le contenu de la CSR

openssl req -text -noout -verify -in server.csr

Soumettez la CSR à votre autorité de certification pour recevoir votre certificat SSL signé.

Installez le certificat sur Nginx

ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/private/server.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;

SSL sur AlexHost : Déploiement simplifié

Que vous déployiez un site WordPress, une API Node.js ou une plateforme e-commerce à fort trafic, disposer de la bonne infrastructure d’hébergement rend la gestion SSL considérablement plus facile.

Hébergement VPS

Avec l’hébergement VPS d’AlexHost, vous obtenez un accès root complet à votre serveur, vous permettant d’installer et de configurer les certificats SSL exactement comme nécessaire — que ce soit en utilisant Let’s Encrypt via Certbot, des certificats commerciaux ou des certificats wildcard pour les sous-domaines. Le stockage NVMe SSD garantit un traitement rapide de la poignée de main SSL même sous des charges de trafic élevées.

Panneaux de contrôle gérés

Si vous préférez une approche basée sur l’interface graphique pour la gestion SSL, le VPS avec cPanel fournit une interface rationalisée pour installer les certificats SSL, gérer les fichiers de clés et activer AutoSSL — tout sans toucher à la ligne de commande.

Hébergement partagé

Pour les petits sites web et les projets personnels, les plans d’hébergement web partagé incluent le support SSL, ce qui facilite la sécurisation de votre site sans expertise en administration de serveur.

Erreurs courantes des clés SSL et comment les corriger

ErreurCauseCorrection
SSL_ERROR_RX_RECORD_TOO_LONGHTTP servi sur le port HTTPSVérifiez la configuration de l’hôte virtuel
ERR_CERT_AUTHORITY_INVALIDCA auto-signée ou non fiableInstallez un certificat signé par une CA
Private key does not match certificateIncompatibilité clé/certificatRégénérez la CSR à partir de la clé privée correcte
Certificate has expiredRenouvellement non configuréConfigurez le renouvellement automatique avec Certbot
ERR_SSL_VERSION_OR_CIPHER_MISMATCHVersion TLS obsolèteActivez TLS 1.2/1.3, désactivez les anciens protocoles

Questions fréquemment posées

Puis-je utiliser le même certificat SSL sur plusieurs serveurs ?

Oui, mais vous devez copier à la fois le certificat *et* la clé privée sur chaque serveur. Assurez-vous que la clé privée est transmise de manière sécurisée (par exemple, via SCP sur SSH) et que les permissions de fichier sont définies correctement sur chaque serveur.

Qu’est-ce qu’un certificat SSL wildcard

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer