在ssl站点上显示非ssl url图像

时间:2018-01-22 15:42:00

标签: google-chrome ssl https

我试图通过相对链接在我的ssl网站上显示来自非ssl网址源的图片,确保挂锁显示为绿色并且不会向混合内容发送消息。虽然我明白这可能不是最好的方法,但我有两个问题:

1)我有两个来源:

http://bc01.rp-online.de/polopoly_fs/benito-raman-fortuna-duesseldorf-2017-1.7053738.1516622253!httpImage/1633501625.jpg_gen/derivatives/d950x950/1633501625.jpg

http://bilder.bild.de/fotos-skaliert/prinzessin-eugenie-ist-verlobt-200668711-54556312/3,w=120,c=0.bild.jpg

如果我将第一个来源转换为:

// bc01.rp-online.de/polopoly_fs/benito-raman-fortuna-duesseldorf-2017-1.7053738.1516622253!httpImage/1633501625.jpg_gen/derivatives/d950x950/1633501625.jpg

它不会显示在Chrome中。

如果我将第二个来源转换为:

// bilder.bild.de/fotos-skaliert/prinzessin-eugenie-ist-verlobt-200668711-54556312/3,w=120,c=0.bild.jpg

它将显示在Chrome中,挂锁显示为绿色。

有人可以解释我的区别吗?

2)是否有更好的方法在SSL站点中显示来自非SSL URL外部源的图像,确保挂锁为绿色。

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

有趣的是你应该发布这个。对于今天类似的事情我有一个非常奇怪的行为,你没有选择使用//example.com/......这只是一个(谷歌)Chrome的东西。

这里的不同之处在于,在使用//时,它会自动解析为相应的协议;您应该使用它,这适用于JS脚本,图像,表单等。

注意:如果代码中的任何地方混合了http / https,那么这也会造成严重破坏,并会在任何浏览器中发出有关混合内容的消息。

答案 1 :(得分:0)

如果您的网址以" //"这意味着浏览器应该使用父网页的协议。在你的情况下,这是https。

所以你的两个链接就是:

  

https://bc01.rp-online.de/polopoly_fs/benito-raman-fortuna-duesseldorf-2017-1.7053738.1516622253!httpImage/1633501625.jpg_gen/derivatives/d950x950/1633501625.jpg

但是bc01.rp-online.de没有有效的https证书。 和

  

https://bilder.bild.de/fotos-skaliert/prinzessin-eugenie-ist-verlobt-200668711-54556312/3,w=120,c=0.bild.jpg

完美无缺。

如果您在https网站中包含http图片,则Chrome不会显示" secure"绿色挂锁,因为您的网站不完全安全:某些项目可能会被第三方拦截/修改。

要使用绿色挂锁,您应该只使用安全(https)图像/资源。如果这些图像不适用于https(或者如果他们的https链接被破坏或重定向到http),那么您需要找到另一种解决方案,例如托管自己的图像。