La connexion HTTPS n'est «pas sûre» en raison des images


14

Je travaille actuellement sur un site Web et j'ai réussi à installer mon certificat SSL.

Le vérificateur SSL / TLS GeoTrust a confirmé que la chaîne de certificats (y compris l'autorité de certification) est correctement installée. Tout va bien sur Chrome, mais mon cadenas n'est pas vert et sur Firefox, il indique en fait que le site Web n'est pas sécurisé car il contient des éléments non chiffrés.

J'ai utilisé un service en ligne pour vérifier pourquoi et il s'avère qu'en effet mes images ne sont pas considérées comme des URL sécurisées. Comment gérer cette situation, c'est-à-dire comment intégrer des images sur mon site Web en toute sécurité?

Réponses:


32

Vos balises d'image doivent actuellement ressembler à:

<img src="http://example.com/images/image.jpg">

Cela httpsignifie que l'image n'est PAS servie en toute sécurité. Un attaquant pourrait modifier l'image en transit et ainsi modifier l'apparence de votre page autrement sécurisée pour vos utilisateurs.

Au lieu de cela, vous pouvez utiliser l'un des éléments suivants pour diffuser les images en toute sécurité:

  • Lien vers httpsexplicitement:<img src="https://example.com/images/image.jpg">
  • Utilisez un lien relatif vers des images sur votre propre domaine: <img src="/images/image.jpg">
  • Utilisez un lien relatif au protocole pour utiliser des images d'autres domaines: <img src="//example.com/images/image.jpg">

Explicit httpsservira toujours l'image en toute sécurité (même lorsque la page n'est pas servie en toute sécurité) tandis que la liaison relative ne servira l'image en toute sécurité que si la page est servie en toute sécurité.

Dans Firefox et Chrome, vous pouvez cliquer sur le cadenas et obtenir plus d'informations sur le problème. Cela fait, voici une capture d'écran de Firefox montrant une liste de toutes les images et la page. Il est facile de parcourir la liste et de voir lesquels sont http:


2
"Un attaquant pourrait modifier l'image en transit et ainsi modifier l'apparence de votre page autrement sécurisée pour vos utilisateurs." - ou même déclencher une vulnérabilité dans le moteur de rendu.
John Dvorak

2
Et détournez les cookies, qui peuvent inclure des jetons d'accès.
Darkhogg

Cela ressemble beaucoup à ce qu'il est conseillé de le faire. Grâce à vous, j'ai réussi à obtenir mon cadenas vert mais un ami a dit que le cryptage des images pouvait ralentir la page. Est-ce un problème dans mon cas?
mti_

3
Il y a certainement des frais généraux pour le cryptage, mais il ne dépasse généralement pas 10% de nos jours. Cette pénalité de performance (même pour les images) est le prix à payer pour un site sécurisé.
Stephen Ostermiller

whynopadlock.com est un outil pratique pour localiser rapidement les ressources non sécurisées à une URL spécifique.
Ville

5

Le problème est que votre page diffuse des liens à partir d'un emplacement http par opposition à https. Cela est dû à l'utilisation de liens http absolus pour référencer des ressources telles que des images. Il existe deux meilleures méthodes qui vous permettront de référencer des liens dans http ou https et d'éviter ce problème.

Il vous oblige à trouver ces liens et à les modifier:

  1. liens relatifs: ie./wp-content/yourtheme/images/image1.jpg
  2. ou placez // à l'avant du domaine comme dans //example.com/wp-content/wp-content/yourtheme/images/image1.jpg Ceci servira alors ces ressources sur http ou https en fonction de la demande qui a été faite.

Dans Chrome et Firefox, vous pouvez cliquer sur l'icône du cadenas, puis cliquer pour afficher la liste des liens non sécurisés incriminés. Et si vous ne voyez pas d'images ou d'autres ressources mises en évidence dans le navigateur mais que vous obtenez toujours des erreurs, vous pouvez découvrir qu'il existe un appel javascript qui fait référence aux liens de manière absolue via http .


2
//au début n'est pas standard, et les navigateurs comme Lynx se plaindront.
mirabilos

2
@mirabilos RFC 1808 est la norme pour les URL et spécifie les liens relatifs au protocole (commençant par //) dans la section 2.4.3. La norme a maintenant 15 ans et est mise en œuvre par tous les principaux navigateurs, y compris Lynx
Stephen Ostermiller

#mirabilos Vérifiez vos liens de référentiel Google recommandés. Vous constaterez que Google les utilise depuis de nombreuses années.
garth

1

C'est vraiment basique. Lorsque vous créez des sites Web servis via SSL (https), toute référence dans votre code qui n'est pas précédée de https affichera des avertissements de sécurité - autres que des liens. Notez que la plupart (tous) les navigateurs ont également des liens relatifs par défaut vers http. Donc, si vous faites référence à /uploads/12/5/img.jpg ou /js/jquery.js, le protocole de transfert sera par défaut http - ce qui est vraiment ennuyeux.

Tous les navigateurs gèrent les avertissements un peu différemment, mais vous obtiendrez une sorte de message. Une déclaration générale serait que plus le navigateur est nouveau, plus le message sera sévère. Certains navigateurs plus anciens ignorent pratiquement ces erreurs tandis que les navigateurs plus récents peuvent agir comme si votre monde était attaqué à cause des "s" manquants.


10
"la plupart (tous) les navigateurs ont également des liens relatifs par défaut vers http" Euh, quoi? Absolument tous les navigateurs, sauf s'ils sont cassés, utiliseraient le protocole actuel si vous n'en spécifiez pas explicitement un nouveau.
Oleg V. Volkov

5
Oleg a raison; ce n'est pas "ennuyeux": c'est complètement faux.
Courses de légèreté avec Monica

3
C'est complètement faux. Ignorez cette réponse.
martijnve

@martijnve - Comment ma réponse est-elle fausse?
blankip

4
@blankip voir le commentaire de oleg V. Volkovs. Toute référence qui inclut http est erronée. TOUS les autres vont bien. (relatif au protocole, relatif au domaine, relatif au chemin). Et vous devez de toute façon utiliser des liens relatifs dans presque tous les cas.
martijnve

1

Si aucune de ces suggestions ne vous aide en ce qui concerne l'impossibilité d'afficher des images après avoir activé SSL sur votre page Web, vérifiez juste au cas où les paramètres de cPanel pour les liens hypertexte, qui se trouvent dans la section Sécurité du cPanel. Il est très possible que dans ce paramètre, vous ayez les éléments suivants: http://example.comet que vous http://www.example.comsoyez autorisé à accéder aux images alors que leur httpsversion n'est pas activée.


-4

Vérifiez la configuration de votre protocole d'URL sécurisé dans votre cms / wordpress / magento ou toute autre plate-forme que vous utilisez. Vous pouvez également partager certaines de vos balises d'image, mais les images de base img src ne donnent pas ce genre d'erreurs.

La structure des balises d'image est importante, mais le point central de votre question est, je pense, son relatif au "type" de certificat SSL installé sur votre site. Un cas personnel m'est arrivé avec un "certificat SSL GoDaddy standard.

Vous verrez une icône d'avertissement dans la barre de recherche d'URL de Firefox (en particulier), indiquant qu'il pourrait y avoir des images ou des éléments non sécurisés sur votre site. Pour autant que je sache, c'est juste une question de savoir comment Firefox traite les informations sur le certificat, ou les informations qui y sont incluses. Cela ne se produit pas dans Safari, Chrome ou d'autres navigateurs. J'ai trouvé une solution pour cela, en installant au lieu d'un "SSL Standard" un "Certificat SSL Premium ou un certificat de validation étendu EVC " qui a des informations plus détaillées sur la société du site. Vous obtiendrez une barre d'url sécurisée par cadenas vert.

Cependant, le certificat ssl premium pourrait être un peu plus cher, environ 150 $ - 200 $ USD par an.

entrez la description de l'image ici


5
Ce n'est pas vrai car: 1) les balises <img src = "..."> peuvent en effet donner ce type d'erreur, si vous entrez une URL HTTP (par opposition à une URL HTTPS) et 2) le type de certificat ou le façon dont il est traité n'a absolument rien à voir avec cela
fNek

J'utilise pour img src des balises multimédias mondiales comme {{media url = "path / to / image.jpg"}} avec ou sans protocole ssl et je ne reçois aucune erreur. Soit dit en passant, je pointe vers l'erreur ssl de Stephen affichée par Firefox. Cordialement.
Gaio RoOts

3
Si vous utilisez des URL relatives, il n'y a aucun problème, car elles sont relatives. Veuillez lire l'autre réponse. Je sais que vous faites référence à l'erreur de Stephen. Les types de certificats n'ont toujours rien à voir avec cela.
fNek

Le type de certificat n'a aucun impact sur ce que l'on appelle «l'avertissement de contenu mixte». De plus, tous les navigateurs modernes affichent de nos jours l'avertissement, certains clairement, d'autres simplement en refusant d'afficher l'icône de verrouillage.
Martijn Heemels
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.