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
10.10.2024

Comment installer un certificat SSL sur votre site WordPress

Un certificat SSL (Secure Sockets Layer / TLS) est une liaison de protocole cryptographique qui chiffre les données en transit entre un serveur web et un navigateur. Sur un site WordPress, l’installation du SSL signifie que chaque requête HTTP est redirigée vers HTTPS, le navigateur affiche un cadenas, et les données sensibles — identifiants de connexion, soumissions de formulaires, informations de paiement — transitent via un canal chiffré plutôt qu’en texte clair.

Pour WordPress spécifiquement, l’installation du SSL implique trois couches distinctes : la mise en service du certificat au niveau du serveur ou de l’hébergement, la configuration de WordPress lui-même pour servir tous les actifs via HTTPS, et l’élimination des avertissements de contenu mixte qui compromettent silencieusement le contexte sécurisé. Si vous manquez l’une de ces étapes, votre site affichera soit un cadenas cassé, déclenchera des avertissements de sécurité du navigateur, ou échouera entièrement à la validation HTTPS.

Étape 1 : Choisir le bon type de certificat SSL

Tous les certificats SSL n’offrent pas le même niveau de validation ou de signal de confiance. Choisir le mauvais type est une erreur courante qui gaspille de l’argent ou, dans le sens inverse, sous-protège un site qui gère des transactions sensibles.

Comparaison des niveaux de validation

Type de certificatNiveau de validationDélai d’émissionIdéal pourSignal de confiance du navigateur
**Domain Validated (DV)**Propriété du domaine uniquementMinutes à heuresBlogs, sites personnels, environnements de développementIcône de cadenas
**Organization Validated (OV)**Domaine + entité juridique1–3 jours ouvrablesSites d’entreprise, portails SaaSCadenas + détails de l’organisation dans le certificat
**Extended Validation (EV)**Vérification juridique et opérationnelle complète1–5 jours ouvrablesE-commerce, banques, portails à haute confianceCadenas + nom de l’organisation (certains navigateurs)
**Wildcard DV/OV**Domaine + tous les sous-domainesMinutes à joursDéploiements multi-sous-domainesCadenas
**Multi-Domain (SAN)**Plusieurs domaines distinctsMinutes à joursAgences gérant plusieurs propriétésCadenas

SSL gratuit vs. payant

Let's Encrypt émet des certificats DV gratuits et automatisés valables 90 jours avec prise en charge du renouvellement automatique via le protocole ACME. Il est approuvé par tous les principaux navigateurs et constitue le choix approprié pour la grande majorité des sites WordPress. La courte fenêtre de validité est intentionnelle — elle impose l’automatisation et réduit la fenêtre de risque d’un certificat compromis.

Le SSL gratuit de Cloudflare fonctionne différemment : il chiffre la connexion entre le visiteur et le réseau périphérique de Cloudflare, mais la connexion entre Cloudflare et votre serveur d’origine peut rester non chiffrée si vous ne configurez pas le mode Full (Strict) avec un certificat d’origine valide. Il s’agit d’un cas particulier fréquemment mal compris qui crée un faux sentiment de sécurité.

Les certificats payants des CA commerciales (DigiCert, Sectigo, GlobalSign) sont nécessaires lorsque vous avez besoin d’une validation OV ou EV, d’une garantie, ou d’une configuration SAN/Wildcard spécifique non prise en charge par Let's Encrypt.

Si vous devez acheter un certificat de confiance pour votre domaine, AlexHost propose des Certificats SSL avec une émission et une gestion simples directement depuis votre panneau de compte.

Étape 2 : Installer le certificat SSL au niveau de l’hébergement

Le certificat doit être installé sur le serveur web avant que WordPress puisse servir des réponses HTTPS. La méthode dépend de votre environnement d’hébergement.

Installation du SSL via cPanel (Hébergement partagé et VPS)

cPanel est le panneau de contrôle le plus courant pour les environnements partagés et gérés. Si votre hébergeur utilise AutoSSL (basé sur Sectigo) ou prend en charge Let's Encrypt nativement, un seul clic provisionne et renouvelle le certificat automatiquement.

Étapes d’installation manuelle lorsque vous disposez de fichiers de certificat d’une CA :

  1. Connectez-vous à cPanel et accédez à Sécurité > SSL/TLS.
  2. Cliquez sur Gérer les sites SSL.
  3. Sélectionnez le domaine cible dans le menu déroulant.
  4. Collez le contenu de trois fichiers dans les champs correspondants :
  • Certificat (CRT) : Le certificat signé par votre CA.
  • Clé privée (KEY) : Générée lors de la création du CSR — ne la partagez jamais.
  • Bundle d’autorité de certification (CABUNDLE) : Les certificats de chaîne intermédiaires.
  1. Cliquez sur Installer le certificat.

Si vous exécutez WordPress sur un VPS avec cPanel, AutoSSL gère généralement cela automatiquement pour tous les domaines dans WHM. Vérifiez sous WHM > SSL/TLS > Gérer AutoSSL que le domaine est couvert et que le certificat n’est pas en état d’attente ou d’échec.

Installation du SSL sur un VPS avec Apache (méthode manuelle)

Sur un VPS Linux autogéré exécutant Apache, le processus nécessite de modifier directement la configuration de l’hôte virtuel.

Installer Certbot (client Let's Encrypt) sur Debian/Ubuntu :

sudo apt update
sudo apt install certbot python3-certbot-apache -y

Obtenir et installer le certificat automatiquement :

sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

Certbot modifie la configuration de votre hôte virtuel Apache, installe le certificat et configure une tâche cron ou un minuteur systemd pour le renouvellement automatique. Vérifiez que le minuteur de renouvellement est actif :

sudo systemctl status certbot.timer

Pour Nginx sur un VPS :

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Installation manuelle du certificat sur Apache (lors de l’utilisation d’un certificat CA payant) :

Placez vos fichiers de certificat dans un répertoire sécurisé, puis modifiez votre hôte virtuel :

<VirtualHost *:443>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile      /etc/ssl/certs/yourdomain.crt
    SSLCertificateKeyFile   /etc/ssl/private/yourdomain.key
    SSLCertificateChainFile /etc/ssl/certs/yourdomain_ca_bundle.crt
</VirtualHost>

Redémarrez Apache pour appliquer les modifications :

sudo systemctl restart apache2

Si vous gérez une installation WordPress à fort trafic sur un Serveur Dédié, vous avez un contrôle total sur les suites de chiffrement, les en-têtes HSTS et l’agrafage OCSP — des configurations qui ne sont pas possibles sur un hébergement partagé.

Installation du SSL sur un VPS avec Nginx (méthode manuelle)

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate     /etc/ssl/certs/yourdomain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 1.1.1.1 valid=300s;

    root /var/www/html;
    index index.php;
}

Rechargez Nginx après modification :

sudo nginx -t && sudo systemctl reload nginx

Étape 3 : Forcer HTTPS au niveau du serveur avec une redirection 301

Avant de toucher aux paramètres WordPress, appliquez la redirection HTTP vers HTTPS au niveau du serveur. C’est plus fiable que de se fier uniquement à WordPress ou à un plugin, et cela empêche le navigateur de charger la version HTTP.

Apache : redirection .htaccess

Ouvrez votre fichier .htaccess (situé dans la racine de votre WordPress, généralement /var/www/html/.htaccess ou accessible via le gestionnaire de fichiers cPanel) et ajoutez le bloc suivant au-dessus des règles de réécriture WordPress existantes :

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Piège critique : Si vous placez ce bloc *après* le marqueur # BEGIN WordPress, il pourrait être écrasé par les mises à jour du cœur de WordPress. Placez toujours les règles de redirection au niveau du serveur au-dessus du bloc géré par WordPress.

Nginx : redirection du bloc serveur

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

En-tête HSTS (avancé, recommandé)

Une fois que vous êtes certain que votre configuration HTTPS est stable, ajoutez un en-tête HTTP Strict Transport Security pour indiquer aux navigateurs de ne jamais tenter une connexion HTTP :

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

Avertissement : N’activez pas HSTS avec preload tant que vous n’êtes pas certain que chaque sous-domaine dispose également d’un certificat SSL valide. La précharge est irréversible à court terme et cassera les sous-domaines qui n’ont pas HTTPS configuré.

Étape 4 : Mettre à jour WordPress pour servir tout le contenu via HTTPS

Une fois le certificat installé et la redirection au niveau du serveur en place, WordPress lui-même doit être configuré pour générer des URL HTTPS pour tous les liens internes, les actifs et les points de terminaison API.

Option A : Mettre à jour manuellement les URL du site WordPress

  1. Accédez à Réglages > Général dans votre tableau de bord d’administration WordPress.
  2. Changez à la fois Adresse WordPress (URL) et Adresse du site (URL) de http:// vers https://.
  3. Cliquez sur Enregistrer les modifications.

WordPress vous déconnectera immédiatement après l’enregistrement. Reconnectez-vous en utilisant l’URL HTTPS.

Option B : Mettre à jour les URL via wp-config.php

Si vous êtes bloqué hors du panneau d’administration ou préférez une approche basée sur le code, ajoutez ces lignes à wp-config.php avant la ligne /* That's all, stop editing! */ :

define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');

Option C : Mettre à jour les URL HTTP codées en dur dans la base de données

WordPress stocke les URL dans la base de données, y compris les données sérialisées dans les tables de méta de publications et d’options. Un simple rechercher-remplacer sur le SQL brut peut corrompre les tableaux sérialisés. Utilisez WP-CLI pour un remplacement sûr et compatible avec la sérialisation :

wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --skip-columns=guid --all-tables

L’indicateur --skip-columns=guid préserve les GUIDs des publications, qui ne doivent pas être modifiés selon les meilleures pratiques WordPress. Exécutez cette commande depuis le répertoire racine de votre WordPress avec les identifiants de base de données appropriés configurés dans wp-config.php.

Alternativement, le plugin Better Search Replace effectue la même opération via l’interface d’administration avec prise en charge de la sérialisation.

Étape 5 : Corriger les avertissements de contenu mixte

Un avertissement de contenu mixte se produit lorsqu’une page HTTPS charge une ou plusieurs ressources (images, scripts, feuilles de style, iframes) via HTTP. Cela rompt le contexte sécurisé, supprime le cadenas, et dans certains cas amène les navigateurs à bloquer entièrement la ressource.

Diagnostic du contenu mixte

Ouvrez les outils de développement de votre navigateur (F12), accédez à l’onglet Console et recherchez les avertissements préfixés par Mixed Content:. Le message identifiera l’URL exacte de la ressource causant le problème.

Alternativement, utilisez l’outil Why No Padlock? ou effectuez un scan SSL Labs pour obtenir un rapport complet.

Correction du contenu mixte : méthode par plugin

Really Simple SSL est le plugin le plus utilisé à cet effet. Après activation, il :

  • Définit la variable serveur HTTPS pour forcer WordPress à reconnaître la connexion sécurisée.
  • Ajoute un filtre de contenu basé sur JavaScript pour réécrire les URL HTTP à la volée.
  • Vide optionnellement les règles de réécriture et met à jour l’URL du site.

SSL Insecure Content Fixer offre un contrôle plus granulaire, vous permettant de choisir entre un simple remplacement de tampon de sortie et une approche plus profonde par hook de filtre WordPress — utile lorsque la méthode JavaScript de Really Simple SSL cause des problèmes de rendu avec certains constructeurs de pages.

Correction du contenu mixte : méthode manuelle

Pour les URL HTTP codées en dur dans les fichiers de thème ou les plugins personnalisés, recherchez dans votre répertoire de thème :

grep -r "http://yourdomain.com" /var/www/html/wp-content/themes/your-theme/

Remplacez toutes les occurrences par https:// ou, mieux encore, utilisez des URL relatives au protocole (//yourdomain.com/...) pour les ressources tierces où vous ne pouvez pas garantir la disponibilité HTTPS.

Pour les médias intégrés téléchargés avant la migration SSL, exécutez la commande WP-CLI search-replace de l’étape 4 si vous ne l’avez pas encore fait, car les URL des pièces jointes d’images sont stockées dans les tables wp_posts et wp_postmeta.

Étape 6 : Valider l’installation SSL

Ne supposez jamais que l’installation a réussi — vérifiez-la systématiquement.

Test SSL Labs

Accédez à https://www.ssllabs.com/ssltest/ et entrez votre domaine. Un site WordPress correctement configuré devrait obtenir la note A ou A+. Une note A+ requiert :

  • Prise en charge de TLS 1.2 et 1.3 avec TLS 1.0 et 1.1 désactivés.
  • Une suite de chiffrement robuste (pas de RC4, pas de 3DES).
  • En-tête HSTS présent.
  • Agrafage OCSP activé.
  • Aucun problème de chaîne (certificats intermédiaires correctement installés).

Vérification via le navigateur

Cliquez sur l’icône de cadenas dans la barre d’adresse. Dans Chrome, accédez à La connexion est sécurisée > Le certificat est valide pour confirmer que l’émetteur, les dates de validité et les Subject Alternative Names (SANs) correspondent à votre domaine.

Vérification en ligne de commande

openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

Cela affiche la chaîne de certificats complète, le chiffrement négocié et la version TLS. Recherchez Verify return code: 0 (ok) pour confirmer que la chaîne est approuvée.

Vérifier l’expiration du certificat

echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates

Pour les certificats Let's Encrypt, vérifiez également que le test à blanc du renouvellement automatique fonctionne :

sudo certbot renew --dry-run

Étape 7 : Renforcement post-installation et nettoyage SEO

Mettre à jour Google Search Console

Ajoutez la version HTTPS de votre site comme nouvelle propriété dans Google Search Console. Google traite http:// et https:// comme des propriétés distinctes. Soumettez votre sitemap HTTPS (https://yourdomain.com/sitemap.xml) pour accélérer le re-crawl des URL mises à jour.

Mettre à jour votre sitemap et les balises canoniques

Assurez-vous que votre sitemap XML (généré par Yoast SEO, Rank Math ou similaire) génère exclusivement des URL HTTPS. Vérifiez que les balises canoniques dans le <head> de votre thème référencent HTTPS. Une balise canonique pointant vers la version HTTP d’une page confondra les robots d’exploration même si la redirection 301 est en place.

Notifier Google du changement

Dans Google Search Console, utilisez l’outil Changement d’adresse uniquement si vous avez migré vers un nouveau domaine entièrement différent. Pour une migration HTTP vers HTTPS sur le même domaine, les redirections 301 gèrent le transfert de signal — aucun outil de changement d’adresse n’est nécessaire.

Considérations pour WordPress Multisite

Sur un réseau WordPress Multisite, vous devez mettre à jour les valeurs siteurl et home dans les tables wp_siteurl et wp_blogs pour chaque sous-site, pas seulement le site principal. WP-CLI gère cela par site :

wp search-replace 'http://subdomain.yourdomain.com' 'https://subdomain.yourdomain.com' --url=subdomain.yourdomain.com --all-tables

Matrice de décision pratique : quelle méthode SSL utiliser

Votre environnement d’hébergementMéthode SSL recommandéeRenouvellementEffort
Hébergement partagé avec cPanelAutoSSL ou Let's Encrypt via cPanelAutomatiqueMinimal
[Hébergement VPS](https://alexhost.com/fr/vps/) avec Apache/NginxCertbot (Let's Encrypt)Automatique via minuteur systemdFaible
VPS avec cPanel/WHMAutoSSL dans WHMAutomatiqueMinimal
[Serveur Dédié](https://alexhost.com/fr/dedicated-servers/)Certbot ou certificat CA payantManuel ou automatiséMoyen
Domaine proxifié CloudflareSSL Cloudflare + certificat d’origineAutomatique (Cloudflare)Faible (mais vérifiez le mode Full Strict)
Site e-commerce / haute confianceCertificat OV ou EV payantRenouvellement manuel annuelÉlevé

Points techniques clés à retenir

  • L’installation du certificat et la configuration de WordPress sont des étapes distinctes. Un certificat installé au niveau du serveur ne fait pas automatiquement générer des URL HTTPS par WordPress. Les deux doivent être configurés.
  • Le contenu mixte est l’échec post-migration le plus courant. Exécutez un search-replace de base de données avec WP-CLI avant d’activer tout plugin SSL pour détecter les URL HTTP codées en dur à la source.
  • Le renouvellement automatique de Let's Encrypt doit être vérifié, pas supposé. Exécutez certbot renew --dry-run après la configuration initiale et surveillez les dates d’expiration. Un renouvellement échoué casse silencieusement votre site 90 jours plus tard.
  • HSTS est une porte à sens unique. Ne définissez pas une longue valeur max-age ou n’activez pas preload tant que chaque sous-domaine ne dispose pas d’un certificat valide et que vous n’êtes pas engagé définitivement dans HTTPS.
  • Le SSL gratuit de Cloudflare n’est pas chiffré de bout en bout par défaut. Définissez le mode SSL/TLS sur Full (Strict) et installez un certificat d’origine sur votre serveur pour combler la lacune.
  • Sur l’hébergement partagé, vérifiez que le SSL de votre hébergeur couvre à la fois le domaine apex (yourdomain.com) et le sous-domaine www. Un certificat émis uniquement pour l’un produira une erreur de non-correspondance de nom sur l’autre.
  • Les données sérialisées dans les bases de données WordPress ne peuvent pas être mises à jour en toute sécurité avec du SQL brut REPLACE(). Utilisez toujours WP-CLI ou un plugin compatible avec la sérialisation.

Pour les sites hébergés sur un Hébergement Web Partagé, le chemin le plus rapide vers SSL est d’activer AutoSSL ou Let's Encrypt via cPanel — l’ensemble du processus prend moins de cinq minutes et ne nécessite aucun accès en ligne de commande. Pour les déploiements plus complexes nécessitant une configuration de chiffrement personnalisée, l’agrafage OCSP ou des certificats multi-domaines, un VPS avec un panneau de contrôle configurable vous donne l’accès au niveau du serveur nécessaire.

FAQ

L’installation d’un certificat SSL améliore-t-elle directement mon classement Google ?

Google a confirmé HTTPS comme signal de classement en 2014. L’amélioration directe du classement est modeste, mais les avantages indirects — réduction du taux de rebond dû aux avertissements de sécurité du navigateur, éligibilité à HTTP/2 et HTTP/3, et confiance des utilisateurs — ont un effet cumulatif mesurable sur les performances organiques.

Quelle est la différence entre SSL et TLS ?

SSL (Secure Sockets Layer) est le prédécesseur obsolète de TLS (Transport Layer Security). Tous les certificats modernes utilisent TLS 1.2 ou 1.3. Le terme « certificat SSL » persiste comme raccourci dans l’industrie, mais aucun navigateur ni serveur n’a utilisé le vrai SSL depuis 2015. Si votre serveur accepte encore SSLv3 ou TLS 1.0, désactivez-les immédiatement — ils sont vulnérables aux attaques POODLE et BEAST respectivement.

Pourquoi mon site affiche-t-il encore « Non sécurisé » après l’installation du certificat ?

La cause la plus courante est une erreur de contenu mixte : au moins une ressource sur la page se charge via HTTP. Ouvrez les outils de développement du navigateur, vérifiez la Console pour les avertissements de contenu mixte, et utilisez WP-CLI search-replace ou le plugin Really Simple SSL pour réécrire les URL problématiques. Une cause secondaire est que l’URL du site WordPress dans Réglages > Général pointe encore vers http://.

Comment renouveler un certificat Let's Encrypt avant son expiration ?

Certbot installe un minuteur systemd ou une tâche cron qui tente le renouvellement automatiquement lorsque le certificat est à moins de 30 jours de l’expiration. Pour forcer un renouvellement immédiat, exécutez sudo certbot renew --force-renewal. Pour tester sans effectuer de modifications, exécutez sudo certbot renew --dry-run. Consultez le journal de renouvellement à /var/log/letsencrypt/letsencrypt.log si le renouvellement échoue.

Puis-je installer SSL sur WordPress sans accès au serveur ou à cPanel ?

Oui, via Cloudflare. Ajoutez votre domaine à Cloudflare, pointez vos serveurs de noms vers ceux de Cloudflare, et activez le paramètre SSL/TLS. La connexion visiteur-Cloudflare est chiffrée immédiatement. Cependant, définissez le mode sur Full (Strict) et installez un certificat d’origine Cloudflare sur votre serveur pour chiffrer également la connexion Cloudflare-origine. Sans cela, la connexion entre Cloudflare et votre serveur reste non chiffrée, ce qui constitue une faille de sécurité significative pour tout site gérant des données utilisateur.

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