Passer un site Joomla en HTTPS demande trois étapes : installer un certificat SSL sur votre serveur, activer Force HTTPS dans la configuration globale de Joomla, et ajouter une redirection 301 pour que les anciens liens HTTP soient suivis. La troisième étape comporte un piège propre à Joomla qui déroute la plupart des utilisateurs, et il est expliqué ci-dessous avant le code.
Réponse rapide : installez le certificat via votre panneau d’hébergement, puis allez dans Système > Configuration globale > Serveur et réglez Force HTTPS sur Site entier. Pour ajouter une redirection au niveau du serveur, renommez d’abord htaccess.txt dans la racine de Joomla en .htaccess, car Apache ignore le fichier sous son nom d’origine.
Le SSL (abréviation de Secure Sockets Layer, bien que tout certificat émis aujourd’hui utilise en réalité TLS) est ce qui fait disparaître la mention « Non sécurisé » de votre barre d’adresse. Si vous voulez d’abord comprendre les bases, lisez ce qu’est un certificat SSL. Ces étapes s’appliquent à Joomla 5 et Joomla 6.
Quelle méthode correspond à votre installation Joomla
| Votre configuration | Comment obtenir le certificat | Durée approximative |
|---|---|---|
| Hébergement géré ou cPanel avec AutoSSL | Émettez le certificat gratuit dans le panneau, puis activez Force HTTPS | 10 minutes |
| Hébergeur sans outil SSL, ou votre propre VPS | Certbot pour un certificat Let’s Encrypt, puis activez Force HTTPS | 20 minutes |
| Certificat payant (OV, EV ou wildcard) | Générez une CSR, installez-la manuellement, puis activez Force HTTPS | 30 minutes plus la validation |
| Cloudflare devant votre site | Certificat sur l’origine, Cloudflare réglé sur Full (strict), et Behind Load Balancer activé | 15 minutes |
Faites une sauvegarde avant de commencer. Akeeba Backup est le choix habituel sur Joomla. Le mode d’échec de cette procédure consiste à perdre l’accès à votre propre interface d’administration, et une sauvegarde combinée à l’étape de récupération décrite plus loin dans la section configuration.php vous permettra d’en sortir.
Quel certificat SSL choisir pour un site Joomla ?
Commencez par l’option gratuite. La plupart des hébergeurs émettent automatiquement des certificats Let’s Encrypt gratuits, et le chiffrement fourni par un certificat gratuit est identique à celui d’un certificat payant. Ce qui différencie un certificat SSL Joomla d’un autre, c’est ce que l’autorité de certification a vérifié avant de l’émettre, et ce que vous obtenez lorsque quelque chose ne fonctionne pas.
| Type | Ce que la CA vérifie | Délai d’émission | Convient à |
|---|---|---|---|
| Validation de domaine (DV) | Que vous contrôlez le domaine | Quelques minutes | Blogs, sites vitrines, la plupart des installations Joomla |
| Validation d’organisation (OV) | Le domaine plus votre organisation enregistrée | 1 à 3 jours ouvrés | Sites d’entreprise, espaces membres, portails clients |
| Validation étendue (EV) | Une vérification juridique et opérationnelle complète de l’entreprise | 1 à 3 jours ouvrés | Boutiques, finance, partout où l’identité compte |
Si votre installation Joomla dessert des sous-domaines, un certificat wildcard les couvre tous avec un seul certificat. Vous ne savez pas quel type choisir ? L’assistant SSL vous aide à le déterminer en quelques questions.
Un certificat gratuit cesse d’être la bonne réponse dans quatre cas : vous acceptez des paiements et souhaitez une garantie adossée au certificat, vous avez besoin que vos informations d’organisation vérifiées y figurent plutôt qu’une simple validation de domaine, vous gérez des sous-domaines et l’émission gratuite de wildcard est peu pratique chez votre hébergeur, ou votre hébergeur n’automatise pas le renouvellement. Ce dernier point compte plus qu’on ne le pense, et la section suivante explique pourquoi.
Installer le certificat sur votre serveur
Joomla n’installe pas les certificats. Cette étape se déroule au niveau du serveur, avant même de toucher à Joomla.
Depuis votre panneau d’hébergement
Recherchez SSL/TLS, Let’s Encrypt ou AutoSSL dans votre panneau de contrôle. Sur cPanel, cela se trouve sous Sécurité. Émettez le certificat à la fois pour le domaine principal et pour la version www, sinon celui que vous aurez omis déclenchera un avertissement de non-correspondance de nom.
Les certificats Let’s Encrypt durent 90 jours et sont censés se renouveler automatiquement environ 30 jours avant leur expiration. Lorsque cette automatisation échoue, généralement après un changement de domaine ou de DNS, le site continue de fonctionner pendant plusieurs semaines puis devient soudainement non sécurisé sans avertissement. Vérifiez que le renouvellement automatique est activé, et après la première date de renouvellement prévue, contrôlez le certificat avec le SSL Checker. Si la date d’expiration a avancé, le renouvellement fonctionne.
Sur un VPS sans panneau
Utilisez Certbot, le client Let’s Encrypt. Il émet le certificat depuis la ligne de commande, configure Apache ou Nginx, et installe son propre minuteur de renouvellement.
Installer un certificat payant manuellement
- Générez une CSR. Joomla n’a pas de fonction CSR propre, utilisez donc le générateur de CSR, ou les guides de génération de CSR pour votre serveur.
- Soumettez-la à l’autorité de certification et terminez la validation.
- Installez le certificat, la clé privée et les certificats intermédiaires. Sous cPanel, cela se trouve dans SSL/TLS > Gérer les sites SSL, décrit dans le guide d’installation cPanel. Les autres plateformes sont couvertes dans les guides d’installation SSL.
- Vérifiez avant de continuer. Exécutez le SSL Checker, et consultez comment vérifier que le certificat est correctement installé si quelque chose semble anormal.
Ne négligez pas les certificats intermédiaires. Si vous installez le certificat principal sans la chaîne, la plupart des navigateurs de bureau afficheront quand même un cadenas, car ils mettent en cache des intermédiaires déjà rencontrés ailleurs. Les navigateurs mobiles, les passerelles de paiement et les clients API échoueront, eux. Si c’est un problème de chaîne que vous recherchez, consultez les certificats intermédiaires expirés.
Comment forcer HTTPS dans Joomla
Une fois le certificat fonctionnel sur le serveur, indiquez à Joomla de l’utiliser. Connectez-vous à l’administration et allez dans Système > Configuration globale > Serveur. Dans le bloc Serveur en haut de cet onglet, vous trouverez Force HTTPS, qui propose trois états plutôt qu’un simple activé/désactivé.
- Aucun. Joomla ne fait rien. Les pages restent accessibles à la fois en HTTP et en HTTPS.
- Administrateur uniquement. L’administration, y compris son écran de connexion, est forcée en HTTPS, tandis que le site public reste inchangé. C’est l’état à utiliser pendant que le certificat est encore en cours de validation, ou sur un site que vous migrez par étapes. Votre propre mot de passe cesse immédiatement de circuler en clair, sans toucher à ce que voient les visiteurs.
- Site entier. Tout est forcé en HTTPS. C’est l’option à choisir une fois le certificat confirmé fonctionnel.
Sélectionnez Site entier et enregistrez. Vérifiez que le certificat se résout correctement sur votre domaine avant de faire cela. Si Force HTTPS est activé alors que le certificat est cassé ou absent, l’administration devient également inaccessible, et vous devrez recourir à l’étape de récupération décrite ci-dessous.
Ces instructions concernent Joomla 5 et Joomla 6, les deux branches actuellement prises en charge. Joomla 6.0 est sorti en octobre 2025, et Joomla 5 cessera de recevoir des mises à jour fonctionnelles le 13 octobre 2026, après quoi seuls des correctifs de sécurité seront fournis jusqu’en octobre 2027. Si vous êtes encore sur Joomla 3, celui-ci a atteint sa fin de vie en août 2023 et le réglage se trouve à un autre endroit, donc mettez à jour avant de suivre quoi que ce soit ici.
Définir Force HTTPS depuis configuration.php
Chaque réglage de la configuration globale est stocké dans configuration.php, à la racine de Joomla. Modifier ce fichier via FTP permet de retrouver l’accès lorsque Force HTTPS vous a verrouillé hors de l’administration, ce qui correspond exactement à la situation où le menu déroulant n’est plus accessible.
La ligne concernée est :
public $force_ssl = 2;
Les valeurs correspondent aux trois états : 0 pour Aucun, 1 pour Administrateur, et 2 pour le site et l’administration à la fois. Remettre la valeur à 0 via FTP annule un verrouillage en quelques secondes.
Vous trouverez une seconde ligne juste à côté :
public $live_site = '';
De nombreux tutoriels Joomla HTTPS vous conseillent de renseigner cette ligne avec votre adresse https, et beaucoup l’écrivent sous la forme var $live_site. Cette syntaxe appartient à Joomla 1.5, qui utilisait la syntaxe de classe PHP 4 et a été retiré en 2012. Les versions actuelles de Joomla utilisent public, et ce réglage est documenté comme facultatif. Laissez-le vide sauf raison précise de fixer l’URL du site. Ce n’est pas ce qui active le HTTPS, et le renseigner incorrectement est une cause fréquente de dysfonctionnement d’un site Joomla. C’est $force_ssl qui fait le travail.
Ajouter une redirection 301 dans .htaccess
Force HTTPS traite les requêtes qui arrivent jusqu’à Joomla. Une redirection au niveau du serveur est plus rapide, car elle se produit avant l’exécution de PHP, et elle continue de fonctionner même si Joomla est hors ligne. Sur Apache, cela signifie .htaccess, et voici la partie que presque tous les guides omettent.
D’abord, renommez htaccess.txt
Joomla livre le fichier sous le nom htaccess.txt, et non .htaccess. Apache l’ignore sous ce nom. Si vous collez des règles de redirection dans un fichier appelé htaccess.txt, ou dans un fichier .htaccess qui n’existe pas encore, rien ne se passe et aucune erreur ne vous indique pourquoi.
- Renommez htaccess.txt en .htaccess à la racine de Joomla. Ne modifiez pas htaccess.txt en le laissant tel quel : une mise à jour de Joomla écrase ce fichier et vos modifications disparaissent avec lui.
- Effectuez le renommage avant d’activer Use URL Rewriting dans la configuration globale. Si vous activez la réécriture d’abord, Joomla commence à produire des URL sans index.php que Apache ne sait pas router, et toutes les pages sauf la page d’accueil renvoient une erreur 404.
Ensuite, ajoutez la redirection
Ajoutez ces lignes en haut de .htaccess, au-dessus du bloc de réécriture propre à Joomla :
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Deux détails déterminent si cela fonctionne. La condition doit être off, ce qui signifie « rediriger lorsque la requête n’est pas déjà sécurisée ». Écrite en on, ce qui apparaît dans un nombre surprenant d’extraits publiés, la règle ne s’applique qu’aux requêtes déjà en HTTPS et les redirige à nouveau vers HTTPS, créant une boucle. Et l’indicateur R=301 est ce qui en fait une redirection permanente. Sans lui, ou avec un simple R, vous obtenez une redirection temporaire 302 ou une réécriture interne qui n’indique jamais aux moteurs de recherche qu’un contenu a été déplacé.
Sur Nginx
Nginx n’a pas de .htaccess et ne lit pas les règles de réécriture Apache. Modifiez plutôt le bloc serveur :
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Testez avec nginx -t, puis rechargez avec systemctl reload nginx.
Corrigez ce que le passage laisse derrière lui
Videz le cache de Joomla. C’est la première chose à faire, et celle qu’on oublie le plus souvent. Joomla continuera volontiers à servir des pages en cache pleines de balisage HTTP, ce qui fait paraître cassée une migration pourtant terminée. Allez dans Système > Vider le cache, dans le panneau Maintenance, et purgez également votre CDN si vous en utilisez un.
Corrigez le contenu mixte. Une page servie en HTTPS qui charge encore une image, un script ou une feuille de style en HTTP constitue du contenu mixte. Les navigateurs traitent les deux catégories différemment : les médias sont généralement upgradables, si bien que le navigateur les demande discrètement en HTTPS à la place, tandis que les scripts et feuilles de style sont bloquables et simplement refusés, ce qui explique pourquoi une page concernée peut s’afficher entièrement sans mise en forme. Sur Joomla, les sources habituelles sont des URL codées en dur dans les surcharges de modèle, les réglages de modules et les extensions tierces. La console du navigateur nomme la ressource fautive. Notre guide sur comment corriger le contenu mixte couvre le diagnostic en détail.
Mettez à jour votre sitemap et robots.txt. Régénérez le sitemap XML pour qu’il liste des URL https, et vérifiez que robots.txt ne référence pas la version http de quoi que ce soit.
Résolution des problèmes SSL sous Joomla
Trop de redirections après l’activation de Force HTTPS
C’est l’échec le plus courant du HTTPS sous Joomla, et il survient parce que deux conseils courants sont incompatibles entre eux. Si un proxy tel que Cloudflare termine le TLS et communique ensuite avec votre serveur en HTTP simple, Joomla ne voit jamais de requête HTTPS. Force HTTPS en conclut que le visiteur est arrivé de manière non sécurisée et le redirige vers HTTPS, le proxy répond de nouveau à cette requête en HTTP, et la boucle continue jusqu’à ce que le navigateur abandonne avec ERR_TOO_MANY_REDIRECTS.
Il existe deux corrections, et vous voudrez généralement appliquer les deux :
- Réglez votre mode de chiffrement SSL/TLS Cloudflare sur Full (strict) et conservez un certificat valide sur le serveur d’origine. Le mode Flexible, encore recommandé par plusieurs tutoriels Joomla populaires comme option gratuite rapide, est ce qui crée la boucle.
- Activez Behind Load Balancer sur Yes. C’est sur le même onglet Système > Configuration globale > Serveur, plus bas dans le bloc Proxy. Cela indique à Joomla de faire confiance à l’en-tête de protocole transmis par le proxy plutôt que de chercher une connexion HTTPS directe.
Une mise en garde sur ce second réglage : n’activez Behind Load Balancer que si votre site est réellement derrière un proxy, un équilibreur de charge ou un CDN. Sur un hébergement ordinaire, faire confiance à un en-tête transmis que n’importe qui peut envoyer affaiblit la sécurité sans aucun avantage.
Autres problèmes courants
| Symptôme | Cause | Solution |
|---|---|---|
| Accès à l’administration verrouillé | Force HTTPS activé alors que le certificat est absent ou cassé | Réglez $force_ssl à 0 dans configuration.php via FTP, corrigez le certificat, puis réactivez |
| Les règles de redirection ne font rien | Elles ont été écrites dans htaccess.txt, ou dans un fichier .htaccess qui n’existe pas | Renommez htaccess.txt en .htaccess |
| Toutes les pages sauf la page d’accueil renvoient une erreur 404 | URL Rewriting a été activé avant le renommage | Renommez le fichier, ou désactivez la réécriture jusqu’à ce que ce soit fait |
| Cadenas absent sur certaines pages seulement | Contenu mixte sur ces pages | Repérez la ressource HTTP dans la console du navigateur |
| Le site fonctionnait bien, est devenu non sécurisé des semaines plus tard | Un certificat Let’s Encrypt a expiré parce que le renouvellement a échoué | Réémettez-le, puis confirmez le renouvellement automatique dans votre panneau |
| Fonctionne dans un navigateur, échoue pour une application ou une passerelle | Chaîne de certificats incomplète | Installez le pack complet de la CA, revérifiez avec le SSL Checker |
| Non-correspondance de nom sur www ou le domaine principal | Le certificat ne couvre qu’un des deux noms | Réémettez-le en couvrant les deux. Voir nom commun invalide |
Si le certificat est installé et que le site indique toujours qu’il n’est pas sécurisé, les guides d’erreurs SSL traitent des codes d’erreur spécifiques aux navigateurs.
Après le passage : liste de contrôle SEO
- Ajoutez la propriété HTTPS dans Google Search Console. Une propriété HTTP ne fournit pas de rapport sur les URL HTTPS. Ajoutez la nouvelle, ou utilisez une propriété de domaine, qui couvre les deux.
- Ressoumettez le sitemap avec des URL https.
- Vérifiez que les balises canoniques pointent vers https dans votre extension SEF ou SEO.
- Mettez à jour les outils d’analyse et tout service tiers qui enregistre l’URL de votre site.
Attendez-vous à un peu de mouvement. Google traite un passage de HTTP à HTTPS comme un déplacement de site avec changement d’URL, donc les impressions apparaîtront réparties entre vos propriétés HTTP et HTTPS pendant un certain temps, et le classement fluctue souvent pendant quelques semaines avant de se stabiliser. Tant que chaque page se résout correctement et que les redirections 301 sont en place, il n’y a rien à corriger.
Une fois le HTTPS stable depuis un certain temps, envisagez HSTS, qui indique aux navigateurs de refuser complètement le HTTP simple pour votre domaine. Laissez la directive de préchargement désactivée au début, car elle est difficile à annuler et rendrait inaccessible tout sous-domaine encore en HTTP.
Questions fréquemment posées
Installez d’abord un certificat SSL sur votre serveur, via votre panneau d’hébergement ou manuellement. Connectez-vous ensuite à l’administration Joomla, ouvrez Système > Configuration globale > Serveur, et réglez Force HTTPS sur Site entier. Joomla lui-même n’installe pas de certificats. Il ne fait qu’appliquer celui que votre serveur possède déjà.
Dans l’onglet Système > Configuration globale > Serveur, dans le bloc Serveur en haut de celui-ci. Il propose trois états : Aucun, Administrateur uniquement, et Site entier. Administrateur uniquement est utile pendant qu’un certificat est encore en cours de validation, car il sécurise votre connexion sans changer ce que voient les visiteurs.
Presque toujours parce qu’un proxy tel que Cloudflare termine le TLS et transmet du HTTP simple à votre serveur, si bien que Joomla pense que chaque requête est arrivée de manière non sécurisée et la redirige de nouveau. Réglez votre mode de chiffrement Cloudflare sur Full (strict) plutôt que Flexible, et activez Behind Load Balancer sur Yes, dans le bloc Proxy de la configuration globale. N’activez ce réglage que si vous êtes réellement derrière un proxy.
Non. Le menu déroulant de la configuration globale écrit la même valeur que celle contenue dans le fichier. Modifier configuration.php est utile dans une seule situation : lorsque Force HTTPS vous a verrouillé hors de l’administration, vous pouvez remettre $force_ssl à 0 via FTP. Ignorez les anciens tutoriels qui vous demandent de renseigner var $live_site. Cette syntaxe a été retirée avec Joomla 1.5 en 2012, et ce réglage est de toute façon facultatif.
Vérifiez d’abord le nom du fichier. Joomla livre le fichier sous le nom htaccess.txt et Apache l’ignore sous ce nom, si bien que les règles qui y sont collées ne s’exécutent jamais. Renommez-le en .htaccess. Si le fichier est correct, vérifiez la condition : elle doit être RewriteCond %{HTTPS} off. Écrite comme « on », elle ne correspond qu’aux requêtes déjà sécurisées, ce qui produit une boucle de redirection au lieu d’une redirection.
Joomla 5 et Joomla 6, les deux branches actuellement prises en charge. Joomla 6.0 a été publié en octobre 2025. Joomla 5 reçoit des mises à jour fonctionnelles jusqu’au 13 octobre 2026 et des correctifs de sécurité jusqu’en octobre 2027. Joomla 3 a atteint sa fin de vie en août 2023 et organise sa configuration différemment, donc mettez à jour avant de suivre ces étapes.
Vous migrez une autre plateforme, ou souhaitez la procédure générale ? Consultez notre guide sur comment faire passer un site de HTTP à HTTPS.
Economisez 10% sur les certificats SSL en commandant aujourd’hui!
Émission rapide, cryptage puissant, confiance de 99,99 % du navigateur, assistance dédiée et garantie de remboursement de 25 jours. Code de coupon: SAVE10

