Module 3 · 3.1
Français
Https et le certificat
Module 3: Adresse, https et utilisateurs · Temps de lecture : 8 minutes
Objectif d'apprentissage : après cette leçon, vous pourrez passer entièrement un site WordPress en https et vous saurez à quoi servent l'adresse WordPress et l'adresse du site.
Notions clés : TLS, certificat, Let's Encrypt, renouvellement automatique, adresse WordPress (siteurl), adresse du site (home), WP_HOME et WP_SITEURL, HSTS, être exclu de l'administration
Ce que fait https
Avec https, tout ce qui circule entre le navigateur et le serveur est chiffré : mots de passe, formulaires, cookies, mais aussi les pages ordinaires. Sans https, n'importe qui sur le même réseau (un wifi public, un routeur piraté) peut lire les échanges et même modifier la page. Les navigateurs signalent un site sans https comme « non sécurisé » et certaines fonctions (comme la localisation ou la caméra) ne fonctionnent qu'avec https.
Ce chiffrement s'appelle TLS. Pour prouver que le navigateur communique réellement avec example.com et non avec un intermédiaire, le serveur possède un certificat : une preuve numérique, signée par un émetteur de confiance pour les navigateurs. Le certificat indique les noms pour lesquels il est valable et jusqu'à quand.
Certificats gratuits et renouvellement
Let's Encrypt délivre des certificats gratuits. Presque tous les hébergeurs les demandent automatiquement et les renouvellent aussi automatiquement. Un certificat de Let's Encrypt est actuellement valable 90 jours, et Let's Encrypt a annoncé qu'il allait progressivement raccourcir cette durée à 45 jours. Le renouveler manuellement n'est donc pas une option : cela doit se faire automatiquement.
Un certificat payant ne chiffre pas mieux. La différence réside dans un contrôle supplémentaire de l'organisation (et parfois une garantie). Pour la plupart des sites, un certificat gratuit convient parfaitement.
Points d'attention :
- Le certificat doit couvrir chaque nom qu'un visiteur peut saisir :
example.cometwww.example.com. Y compris le nom qui ne fait que rediriger, car le navigateur vérifie le certificat avant la redirection. - Le renouvellement automatique ne fonctionne que si le DNS pointe vers votre serveur. Si vous avez migré votre DNS ou mis en place un proxy (comme Cloudflare) devant votre site, vérifiez que le renouvellement fonctionne toujours.
- Un enregistrement CAA dans le DNS peut déterminer quels émetteurs sont autorisés à créer des certificats. Si Let's Encrypt n'y figure pas, la demande échoue (cours DNS, leçon 5.2).
Deux adresses dans WordPress
Sous Réglages > Général figurent deux adresses. Elles semblent faire double emploi, mais elles ont des rôles différents :
| Champ | Dans la base de données | Signification |
|---|---|---|
| Adresse WordPress (URL) | siteurl | L'emplacement des fichiers de WordPress (wp-admin, wp-includes) |
| Adresse du site (URL) | home | L'adresse utilisée par les visiteurs |
En général elles sont identiques, par exemple toutes les deux https://example.com. Elles diffèrent uniquement lorsque WordPress se trouve dans un sous-dossier mais que le site doit apparaître à la racine.
WordPress construit tous les liens à partir de ces adresses : vers les pages, les feuilles de style, les images, l'administration. Si l'une d'elles contient http://, WordPress construira des pages avec des liens en http://, même si le visiteur arrive en https. Cela provoque du contenu mixte (leçon 3.2) et des redirections dans les deux sens.
Faire passer un site en https
Si vous avez un site existant en http, voici les étapes à suivre :
- Demander un certificat pour les deux noms et vérifier que
https://example.comfonctionne (vous verrez alors une page WordPress, peut-être encore sans mise en forme). - Faire une sauvegarde (leçon 8.1).
- Mettre les deux adresses sous Réglages > Général en
https://et enregistrer. Vous serez déconnecté ; reconnectez-vous via https. - Convertir les anciens liens dans le contenu de
http://example.comvershttps://example.com. Faites-le avec un outil qui comprend les données sérialisées, commewp search-replaceou une extension de recherche et remplacement (leçon 3.2), jamais avec une simple commande SQL. - Rediriger : faites en sorte que le serveur web renvoie toutes les requêtes en http vers https avec un code 301 (leçon 3.2). Beaucoup d'hébergeurs proposent une case à cocher pour cela ; sinon, quelques lignes dans
.htaccess. - Vérifier avec l'exercice de cette leçon et celui de la leçon 3.2.
Exclu : si l'adresse est incorrecte
Si vous faites une faute de frappe dans les adresses (htps://, un domaine erroné), WordPress vous renverra après l'enregistrement vers cette adresse incorrecte. Vous ne pourrez plus accéder à l'administration. Pas de panique, il existe deux solutions :
Via wp-config.php. Placez au-dessus de la ligne « stop d'édition » :
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Ces lignes prennent le pas sur les valeurs de la base de données. Les champs sous Réglages > Général deviennent alors grisés. Connectez-vous, saisissez les bonnes valeurs dans la base de données, puis supprimez ces lignes (ou laissez-les volontairement, ainsi personne ne pourra modifier les adresses par erreur via l'administration).
Via phpMyAdmin. Ouvrez la table wp_options et modifiez les valeurs de siteurl et home.
HSTS : faire en sorte que le navigateur s'en souvienne
Avec l'en-tête HSTS (Strict-Transport-Security), le serveur indique au navigateur : « pendant un certain temps, ne vous connectez plus ici qu'en https ». Le navigateur convertira ensuite lui-même chaque http:// en https://, sans d'abord envoyer de requête non sécurisée.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS est une bonne étape supplémentaire, mais avec un avertissement : un navigateur qui a déjà vu HSTS refusera ensuite d'ouvrir le site sans certificat valable, même en cliquant sur « continuer quand même ». Avec includeSubDomains, cela s'applique à chaque sous-domaine. Si vous avez un sous-domaine sans certificat (par exemple un ancien système interne), il devient inaccessible après activation de HSTS. Commencez donc par une courte max-age (par exemple un jour, 86400), vérifiez tout, puis allongez-la.
En pratique : à quoi cela ressemble dans un panneau
À titre d'exemple, nous utilisons DirectAdmin. Dans cPanel, cette fonction s'appelle SSL/TLS Status (AutoSSL), dans Plesk SSL/TLS Certificates.
- Ouvrez Certificats SSL pour votre domaine et choisissez Certificat gratuit et automatique de Let's Encrypt.
- Cochez
example.cometwww.example.comet demandez le certificat. - Dans les réglages du domaine, cochez l'option pour toujours rediriger les visiteurs vers https (chez DirectAdmin : Forcer SSL avec redirection https). N'utilisez qu'une seule méthode de redirection : deux méthodes différentes en même temps peuvent créer une boucle (« trop de redirections »).
- Dans WordPress, allez dans Réglages > Général et mettez les deux adresses en
https://.
Résumé
- https chiffre tout ce qui passe entre le navigateur et le serveur ; le certificat prouve l'identité du serveur.
- Les certificats gratuits de Let's Encrypt ont une courte durée de validité et sont renouvelés automatiquement ; ils doivent couvrir chaque nom qu'un visiteur peut saisir.
- L'adresse WordPress (siteurl) et l'adresse du site (home) doivent toutes deux être en
https://. - Si vous êtes exclu de l'administration à cause d'une adresse erronée, corrigez-la avec WP_HOME et WP_SITEURL dans wp-config.php ou dans phpMyAdmin.
- HSTS est une bonne étape supplémentaire ; commencez par une courte durée de validité.
Quiz
Exercice
Exercice A3.1 : Votre certificat est-il correct ? Indiquez l'adresse de votre site. Le programme établit une connexion TLS avec le nom sans www et avec www (s'il existe) et vérifie : le certificat est-il valable et de confiance, couvre-t-il les deux noms, est-il valable plus de 14 jours, et le site envoie-t-il un en-tête HSTS ? Si HSTS est absent, c'est signalé en orange avec une explication, ce n'est pas une erreur.
Pour aller plus loin
Ces articles décrivent les étapes dans les panneaux de WebOké ; dans d'autres panneaux, le fonctionnement est comparable.
- Guide DirectAdmin 6.1: Qu'est-ce que le SSL et comment WebOké s'en charge-t-il ?
- Guide DirectAdmin 6.2: Demander un certificat Let's Encrypt gratuit
- Guide DirectAdmin 6.3: Certificat pour www, sous-domaines et wildcard
- Guide DirectAdmin 6.4: Rediriger toujours les visiteurs vers HTTPS
- Activer, renouveler et résoudre les problèmes liés au certificat SSL
- La différence entre un certificat gratuit et un certificat payant
- Cours DNS gratuit 5.2: CAA : qui est autorisé à émettre des certificats ?
