Google SEO Avancé

HTTPS sur un site autonome : certificat SSL, HSTS et correction du contenu mixte

Installer un certificat SSL ne couvre que 30 % de la mise en HTTPS d'un site autonome. Une configuration correcte doit passer trois étapes : un certificat ECDSA gratuit Let's Encrypt renouvelé automatiquement tous les 90 jours, avec une alerte à 15 jours de validité restante ;...

独立站HTTPS配置:证书、HSTS与混合内容三层检查HTTPS hardening: certs, HSTS and mixed-content in three layers 证书装了不等于HTTPS合格 —— HSTS不加、混合内容不洗完,浏览器照样打红色警告A cert alone is not HTTPS-ready — without HSTS and mixed-content cleanup the browser still flags it 层Layer 关键动作Key action 量化门槛Quantitative bar 1 证书1. Cert ECDSA P-256 · 90天自动续期ECDSA P-256, 90-day auto-renew 剩余有效期 ≥ 15 天告警Alert if ≤ 15 days left 2 HSTS2. HSTS max-age ≥ 31536000 · 预加载max-age ≥ 31536000, preload 先 5 分钟观察再升 1 年Start 5 min, ramp to 1 year 3 混合内容3. Mixed content 自动升级 · CSP升级Upgrade-insecure-requests 反直觉判断:HSTS不是加得越快越好,第一次直接上一年期会把测试环境锁死Counter-intuitive: ramping HSTS too hard locks your staging out for a year 正确节奏:先 max-age=300 跑 1 周,再升到 86400 跑 1 个月,最后才上 31536000 + preloadRamp 300s for 1 week, 86400s for 1 month, then 31536000 + preload 红线:HTTP 80端口必须 301 跳 HTTPS,不能保留可访问的 HTTP 页面Red line: port 80 must 301 to HTTPS — no reachable HTTP pages left 否则搜索引擎会把 http 和 https 当成两份内容,分散权重并触发重复内容判定Otherwise search engines split signals across two versions and flag duplicates 验收:SSL Labs 评级 A 以上 · 浏览器地址栏无警告 · 全站 mixed content 0 条Pass criteria: SSL Labs A+ · no browser warnings · zero mixed-content hits 每月跑一次 SSL Server Test,证书到期前 15 天必须有人收到告警Re-run SSL Server Test monthly; alert 15 days before expiry
HTTPS en trois contrôles : renouvellement automatique du certificat, montée progressive en HSTS, nettoyage automatique du contenu mixte

HTTPS sur un site autonome : certificat SSL, HSTS et correction du contenu mixte

Conclusion d’abord : Installer un certificat SSL ne couvre que 30 % de la mise en HTTPS d’un site autonome. Une configuration correcte doit passer trois étapes : un certificat ECDSA gratuit Let’s Encrypt renouvelé automatiquement tous les 90 jours, avec une alerte à 15 jours de validité restante ; une montée progressive en HSTS par paliers de 300 secondes, puis 86400 secondes, puis 31536000 secondes, et seulement ensuite l’ajout de preload ; le contenu mixte est mis à niveau automatiquement via l’en-tête upgrade-insecure-requests de la CSP, puis on supprime manuellement les http:// codés en dur restants dans les <img>, les <script> et les styles en ligne. Seule une note SSL Labs de A ou plus valide la configuration.

1. Choix du certificat et renouvellement automatique : n’achetez pas de certificat OV et ne renouvelez pas à la main

Beaucoup de sites autonomes achètent un certificat SSL payant la première année, oublient de le renouveler la deuxième et se retrouvent avec l’avertissement rouge du navigateur. Le constat contre-intuitif est le suivant : pour la grande majorité des sites B2B autonomes, le certificat DV gratuit de Let’s Encrypt suffit amplement, l’OCSP stapling et la note A+ sont accessibles, et le nom d’entreprise affiché en plus avec un certificat OV payant n’a aucun effet mesurable sur le taux de conversion.

Le choix du certificat ne repose que sur deux critères fermes : d’abord l’algorithme de clé, avec ECDSA P-256 plutôt que RSA 2048, qui réduit la taille de la poignée de main de 40 % et accélère le premier chargement mobile d’environ 80 millisecondes ; ensuite la méthode de renouvellement, qui doit passer par certbot ou acme.sh en renouvellement automatique, avec une vérification quotidienne par crontab, et jamais de renouvellement manuel. Dans 90 % des incidents de certificat expiré, la cause est un responsable parti ou un oubli.

Type de certificat Coût annuel Affichage navigateur Cas d’usage Ce qu’on recommande
Let’s Encrypt DV ECDSA 0 € Cadenas de sécurité, sans nom d’entreprise La grande majorité des sites B2B autonomes Choix par défaut, renouvellement automatique
Let’s Encrypt DV RSA 0 € Cadenas de sécurité, sans nom d’entreprise Besoin de compatibilité avec les anciens appareils Uniquement en cas de trafic IE11
Certificat OV payant 2000 à 8000 yuans/an Nom d’entreprise en vert Finance, paiement, panier moyen élevé À éviter sauf nécessité
Certificat EV payant 5000 à 20000 yuans/an Badge EV (supprimé par la plupart des navigateurs) Quasiment aucun cas d’usage Déconseillé

Exemple concret : un SaaS basé à Hangzhou qui se développe à l’international demande un certificat Let’s Encrypt avec acme.sh et configure dans crontab 0 3 * * 1 /root/.acme.sh/acme.sh –renew -d example.com, soit une vérification et un renouvellement automatiques chaque lundi à 3 h du matin. En parallèle, on ajoute une règle de surveillance : une alerte WeCom est envoyée dès que la validité restante du certificat passe sous 15 jours. Une fois cette configuration en place, on n’y touche plus pendant deux ans.

Comment gérer les domaines multiples et les domaines génériques, à planifier avec Accélération mondiale par CDN la stratégie de certificat des nœuds. Les fournisseurs de CDN incluent généralement un certificat en périphérie : le certificat d’origine et celui de la périphérie se gèrent séparément, et le renouvellement du certificat de périphérie ne doit pas dépendre de l’origine.

2. HSTS : une montée progressive, pas un passage en force

HSTS (HTTP Strict Transport Security) est un en-tête de réponse qui force le navigateur à passer par HTTPS. Son côté contre-intuitif : plus le max-age est long, plus c’est sûr, mais plus c’est risqué. Si vous mettez directement max-age=31536000 dès le départ, votre environnement de test, vos sous-domaines de staging et votre back-office interne seront inaccessibles en HTTP pendant un an, et la moindre panne de certificat met tout le site à terre.

Le bon rythme de montée en charge se fait en trois paliers : la première semaine, max-age=300 (5 minutes), le temps de voir si des utilisateurs remontent des problèmes ou si le business décroche ; de la deuxième à la quatrième semaine, max-age=86400 (1 jour), pour confirmer qu’il n’y a rien d’anormal ; et seulement après un mois, passer à max-age=31536000 (1 an) en ajoutant includeSubDomains. La soumission à la liste preload vient encore plus tard : attendez 3 mois de fonctionnement stable avant de soumettre à chromium preload.

Phase Écriture de l’en-tête HSTS Période d’observation Points de risque
Premier niveau Strict-Transport-Security: max-age=300 1 semaine Risque quasi nul, retour en arrière possible à tout moment
Deuxième niveau max-age=86400 1 mois Quelques vieux navigateurs peuvent ne pas être compatibles
Troisième niveau max-age=31536000; includeSubDomains 3 mois Tous les sous-domaines doivent être prêts en HTTPS
Palier final Ajouter la directive preload et soumettre à hstspreload.org Long terme Le retrait après soumission coûte extrêmement cher

Exemple concret : un site d’équipement industriel à l’international, dont le site principal example.com est en HTTPS, mais legacy.example.com est encore en HTTP. Activer includeSubDomains directement bloquerait les utilisateurs du sous-domaine legacy. La bonne méthode : d’abord passer tous les sous-domaines en HTTPS, puis faire monter le HSTS du site principal jusqu’à un an. La liste des sous-domaines est visible dans le rapport de test SSL Labs.

HSTS et Fondations de conformité pour un site à l’international les exigences de sécurité des transmissions vont dans le même sens : le chiffrement des données personnelles imposé par le RGPD trouve dans HSTS sa mise en œuvre technique la plus directe.

III. Contenu mixte : mise à niveau automatique et nettoyage manuel, deux étapes

Le contenu mixte désigne des ressources chargées en http:// dans une page HTTPS. Il en existe deux types : le contenu mixte passif (images, vidéos, polices) que le navigateur bloque automatiquement sans signaler d’erreur ; et le contenu mixte actif (<script>, <iframe>, fetch, XHR) qui fait passer la page en rouge, que le navigateur refuse de charger et qui casse purement et simplement la fonctionnalité.

La correction se fait en deux temps. Première étape : ajouter l’en-tête de réponse Content-Security-Policy: upgrade-insecure-requests; le navigateur transforme alors automatiquement toutes les requêtes http:// de la page en https://, ce qui règle 80 % des cas. Deuxième étape : passer le panneau Console de Chrome DevTools pour repérer ce qui reste, puis supprimer les http:// codés en dur dans le code et la base de données — en particulier siteurl et home dans la table wp_options de WordPress, ainsi que les anciennes données du type <img src=”http://…”> dans les articles historiques.

Type de contenu mixte Comportement du navigateur Priorité de correction Méthode de correction
http://<script>或<iframe> Blocage direct, erreur sur la page P0, à corriger immédiatement Passer la source en https ou changer de CDN
Requêtes http:// XHR/fetch Erreur en console, fonctionnalité hors service P0, à corriger immédiatement Passer en protocole relatif ou en https dans le code
http://<img> images Certains navigateurs mettent à jour automatiquement P1, à corriger sous une semaine upgrade-insecure-requests en secours
http:// polices ou images de fond CSS échec silencieux, styles perdus P1, à corriger sous une semaine remplacer les liens par du https sur le CDN
liens http://<a href> redirection vers HTTP, sans erreur mais avec fuite P2, nettoyage mensuel remplacement en masse dans le sitemap

Le piège le plus courant sur un site WordPress, ce sont les liens d’images en http:// codés en dur dans les anciens articles. Ne faites pas de remplacement SQL en masse directement dans la base de données : sauvegardez d’abord, puis utilisez l’outil Search Replace DB pour un remplacement compatible avec les données sérialisées, sinon vous corrompez les données PHP sérialisées. Pour la sauvegarde, voir Sauvegarde et restauration : s’entraîner à réagir.

Le nettoyage du contenu mixte et Optimiser les Core Web Vitals sont liés : les scripts bloqués retardent le LCP, les images refusées provoquent du CLS. Une fois le contenu mixte nettoyé, ces deux indicateurs s’améliorent généralement d’eux-mêmes.

IV. Liste de vérification et inspection mensuelle

La configuration HTTPS ne se fait pas une fois pour toutes. Les certificats expirent, de nouveaux sous-domaines apparaissent, d’anciens contenus réintroduisent des liens http. Il faut mettre en place un tableau d’inspection mensuel, à exécuter une fois par mois, en 5 à 10 minutes.

Point de contrôle Outil/méthode Seuil de qualification En cas d’échec
Note SSL Labs ssllabs.com/ssltest A ou A+ ajuster la configuration TLS, désactiver les anciens protocoles
Validité restante du certificat openssl s_client ≥ 15 jours déclencher le renouvellement immédiatement
Redirection HTTP vers HTTPS curl -I http://example.com 301 vers https ajouter la règle rewrite
Présence de l’en-tête HSTS curl -I pour voir les en-têtes de réponse max-age≥86400 ajouter la configuration d’en-tête
Nombre de contenus mixtes Chrome DevTools Console 0 localiser et remplacer les http codés en dur
Version TLS Rapport SSL Labs TLS 1.2/1.3 uniquement désactiver TLS 1.0/1.1

Pour automatiser l’inspection, voir Surveillance et alertes du site le chapitre sur la surveillance de l’expiration des certificats et de la disponibilité. Après un piratage, la configuration HTTPS est souvent endommagée ; pour la procédure de nettoyage, voir Nettoyage et réindexation après un piratage de site.

Rappel contre-intuitif : ne soumettez pas HSTS preload à la légère. Une fois votre domaine inscrit dans la liste preload intégrée aux navigateurs, le retirer exige une procédure dédiée, et pendant plusieurs mois les navigateurs des utilisateurs existants continueront d’imposer HTTPS. Si votre activité ajuste encore fréquemment des sous-domaines et des environnements de test, attendez au moins six mois de fonctionnement stable du site principal avant d’envisager preload.

FAQ — Questions fréquentes

Un certificat Let’s Encrypt gratuit suffit-il, ou faut-il acheter un OV payant ?
Pour la grande majorité des sites B2B indépendants, c’est amplement suffisant. Let’s Encrypt délivre des certificats DV gratuits de 90 jours, compatibles ECDSA et RSA, sans maintenance grâce au renouvellement automatique, et permettent aussi d’atteindre la note A ou A+ sur SSL Labs. Le nom d’entreprise affiché dans la barre d’adresse par un certificat OV payant n’apporte aucune amélioration mesurable du taux de conversion auprès des acheteurs B2B. Seuls les secteurs de la finance, du paiement, à panier moyen élevé et soumis à des exigences de conformité justifient d’envisager un OV. Les certificats EV n’affichent plus le nom de l’entreprise dans Chrome et Firefox : encore moins utile de les acheter.
Peut-on mettre max-age=31536000 dès la première configuration HSTS ?
Non, c’est l’erreur de configuration la plus courante. Mettre directement un an vous bloquera tous vos sous-domaines, environnements de test et back-offices en HTTPS forcé pendant un an, et si le certificat tombe en panne ou qu’un sous-domaine n’est pas encore en HTTPS, plus personne ne pourra accéder au site. Le bon rythme : d’abord max-age=300 pendant une semaine, puis 86400 pendant un mois, et seulement ensuite 31536000 avec includeSubDomains. La soumission à la liste preload vient encore plus tard, à envisager après trois mois de stabilité.
Comment corriger le contenu mixte en masse, existe-t-il un outil tout-en-un ?
En deux étapes. D’abord, ajoutez l’en-tête de réponse Content-Security-Policy: upgrade-insecure-requests : le navigateur convertira automatiquement les ressources http:// de la page en https://, ce qui règle 80 % des problèmes. Ensuite, passez tout le site au crible dans la console Chrome DevTools pour éliminer les http:// codés en dur restants dans le code et la base de données. Sur un site WordPress, ne faites pas de remplacement SQL direct sur wp_posts : utilisez l’outil Search Replace DB pour un remplacement sûr des données sérialisées. Après correction, vérifiez deux fois avec SSL Labs et la console Chrome pour confirmer 0 contenu mixte.
Comment configurer le renouvellement automatique du certificat, et quel est le piège à craindre ?
Utilisez certbot ou acme.sh avec crontab pour le renouvellement automatique, avec une vérification une fois par semaine. Le piège le plus courant : le webroot utilisé par le script de renouvellement ne correspond pas à la configuration nginx réelle, la validation échoue et le certificat expire en silence. Une fois la configuration terminée, lancez immédiatement la commande de renouvellement à la main pour confirmer que ça marche, et ajoutez une règle de surveillance : alerte si la validité restante du certificat est inférieure à 15 jours. Si Cloudflare est devant en CDN, attention : le certificat edge et le certificat d’origine sont deux jeux distincts, ne renouvelez pas seulement l’un des deux.
Le HTTPS a-t-il un impact sur le SEO, faut-il passer tout le site en HTTPS ?
Oui, et c’est indispensable. Google considère le HTTPS comme un signal de classement depuis 2018, et Chrome marque directement les sites HTTP comme non sécurisés. Plus important encore, HTTP et HTTPS sont traités par les moteurs de recherche comme deux versions de contenu, ce qui dilue l’autorité et peut déclencher une détection de contenu dupliqué. La bonne méthode : rediriger tout le port 80 HTTP en 301 vers HTTPS, sans conserver de pages HTTP accessibles. Pour la méthode de passation en 301 lors d’un changement de domaine ou d’une migration, voir Refonte du site et changement de domaine cet article.
Comment configurer les versions TLS, faut-il désactiver TLS 1.0 et 1.1 ?
Oui, obligatoire. TLS 1.0 et 1.1 sont officiellement obsolètes depuis la RFC 8996, et les exigences de conformité PCI DSS comme les navigateurs grand public retirent progressivement leur prise en charge. Dans la configuration nginx, ne gardez que TLSv1.2 et TLSv1.3, avec des suites de chiffrement privilégiant ECDHE et AES-GCM. Après configuration, lancez un SSL Server Test pour confirmer une note A ou plus, et l’absence de TLS 1.0 et 1.1 dans la liste des protocoles. Si vous avez du trafic d’utilisateurs sur de très vieux IE11, vous pouvez faire une compatibilité ciblée sur cet UA, sans réactiver les anciens protocoles pour tout le site.

Pour conclure

Configurer HTTPS, on le voit souvent comme une simple histoire de certificat à installer. En réalité, c’est le socle de la sécurité et du SEO d’un site indépendant. Certificat expiré, HSTS absent, contenu mixte résiduel : chacun de ces trois problèmes déclenche une alerte rouge dans le navigateur. L’acheteur voit l’avertissement et ferme la page, et le référencement en prend un coup. Une bonne configuration, puis un contrôle mensuel : le coût est minime, le bénéfice visible sur tout le site.

Trois étapes concrètes : d’abord, passez le cap du certificat avec le renouvellement automatique Let’s Encrypt et visez un A minimum sur SSL Labs ; ensuite, faites monter le HSTS par paliers, de 5 minutes à un an ; enfin, ramenez le contenu mixte à zéro avec upgrade-insecure-requests et un nettoyage manuel. Une fois ces trois étapes faites, HTTPS est vraiment configuré. La liste d’entretien quotidien se trouve Les six tâches mensuelles de la maintenance d’un site : intégrez-y le contrôle HTTPS.

Une phrase à retenir : HTTPS, ce n’est pas un certificat installé et terminé. Renouvellement automatique du certificat, montée progressive du HSTS, contenu mixte à zéro : il faut passer ces trois niveaux pour avoir un vrai HTTPS. S’il en manque un, l’alerte rouge du navigateur fera fuir vos acheteurs à votre place.

Cratère
Cratère Expert Cratère

Officiel de l'organisme · Cratère Crater

Cratère (Crater) est une société de services d'expansion internationale spécialisée dans le développement de sites WordPress autonomes, le référencement Google et la croissance globale GEO, au service des secteurs du matériel intelligent, de l'équipement industriel, du SaaS et des énergies nouvelles.

Capacités produitLivre blanc méthodologiqueRapports sectoriels
965partages
78articles de base de connaissances