在 SSL 站点上显示非 SSL 网址图像



我正在尝试通过相对链接在我的 ssl 网站上显示来自非 ssl url 源的图像,确保挂锁显示为绿色并且不会发送混合内容。虽然我知道这可能不是最好的前进方式,但我有两个问题:

1)我有2个来源:

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外部源的图像,以确保挂锁为绿色。

任何帮助将不胜感激。

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

这里的区别在于,在使用//时,它将自动解析为相应的协议;您应该使用该协议,这对于JS脚本,图像,表单等。

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

如果您的网址以"//"开头,则表示浏览器应使用父网页的协议。在你的情况下,它是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 不会显示"安全"绿色挂锁,因为您的网站并不完全安全:某些项目可能会被第三方拦截/修改。

要拥有绿色挂锁,您应该只使用安全(https)图像/资源。如果这些图像在https中不可用(或者它们的https链接已断开或重定向到http),那么您需要找到另一种解决方案,例如托管自己的图像。

最新更新