我的网站完全位于https:并且效果很好,但是,提供的一些图片来自其他来源,例如易趣,或亚马逊。
这会导致浏览器提示消息:“此网站不提供身份信息”
我该如何避免这种情况?图像必须有时从其他地方提供。
答案 0 :(得分:29)
"本网站不提供身份信息。"不仅仅是对网站本身链接的加密,还包括对网站运营商/所有者的识别 - 就像它实际上说的那样。对于要停止的警告(这不是真正的错误),我认为您必须申请扩展验证证书https://en.wikipedia.org/wiki/Extended_Validation_Certificate。 EVC严格验证网站背后的实体,而不仅仅是网站本身。
答案 1 :(得分:22)
Firefox会显示消息
在时悬停或单击favicon(站点标识按钮)时“本网站不提供身份信息。”
HTTP连接通常不向浏览器提供任何可靠的身份信息。这很正常。 HTTP旨在简单地传输数据,而不是保护它传输的数据。
在服务器端,您只能避免该消息,如果服务器将开始使用SSL证书,并且页面代码将更改为专门使用HTTPS请求。
要避免客户端上的消息,您可以在地址栏中输入about:config
,确认您要小心并设置browser.chrome.toolbar_tips = false
。
当您从使用SSL证书的站点通过HTTPS请求页面时,站点 向浏览器提供身份信息,通常不会显示该消息。
但是,如果请求的网页嵌入了至少一个<img>
,<video>
,<audio>
或<object>
元素,其中包含HTTP内容(不提供身份信息) ,你会得到一个所谓的混合被动内容 * 的情况。
默认情况下,Firefox不会阻止混合被动内容,但只显示所述消息以警告用户。
要在服务器端避免这种情况,首先需要确定哪些请求正在生成混合内容。
使用Windows上的Firefox,您可以使用 Ctrl + Shift + K (Mac上的Control-Option-K)打开Web控制台,取消激活css,js和安全过滤器,然后按 F5 重新加载页面,以显示该页面的所有请求。
然后为显示“混合内容”的每一行修复您的代码,即更改代码的相应部分以使用https://
或根据您的情况protocol-relative URLs。
如果请求外部网站的元素不使用SSL证书,则避免该消息的唯一机会是将外部内容复制到您的网站,以便您的代码可以通过HTTPS在本地引用它。 / p>
* Firefox也知道混合活动内容,默认情况下已被屏蔽,但这是另一个故事。 子>
答案 2 :(得分:0)
JürgenThelen的回答绝对正确。如果页面上显示的图像(通常情况下)通过“http”提供,则无论您拥有哪种证书,EV,结果都将完全如所描述的那样。由于它们的构建方式,这在电子商务网站上非常常见。我之前在我自己的网站上遇到过这个并且通过简单地确保没有图像具有“http”地址来纠正它 - 这是在没有EV证书的网站上。使用Jürgen描述的ctrl + shift + K进程,它会指向有问题的对象。如果对象的路径是硬编码的并且图像驻留在您的服务器上(不是从其他地方调用),只需删除“http://servername.com”并将其更改为相对路径。纠正这一点,问题就会消失。请注意,问题可能也出现在其中一个配置文件中,例如config.php文件之一。
真正的问题是Firefox的错误消息具有误导性,与SSL是否为EV证书无关。这实际上意味着页面上有混合内容,但并没有这么说。几周前,我有一个网站遇到同样的问题,Firefox显示了无身份信息。但是,Chrome(我通常不使用)会显示感叹号而不是锁定。我点击它,它说证书是有效的(有一个绿点),它是一个安全的连接(另一个绿点),并有“混合内容。该网站包括HTTP资源”这是完全准确的和来源的问题(带红点)。一旦违规路径更改为相对路径,Firefox和Chrome中的错误消息就会消失。
答案 3 :(得分:0)
对我来说,这是混合内容的问题。我强迫所有东西在页面上发出HTTPS请求,它解决了问题。 对于来自Google搜索的用户,您可以使用Cloudflare的(免费)页面规则来完成此操作,而无需触碰源代码。为您的域使用“始终使用HTTPS”设置。
答案 4 :(得分:-2)
您还可以使用网址缩短器www.tr.im将http链接转换为https链接。这是我发现的唯一一个通过https提供更短链接的URL缩短器。
您只需手动将其从http://tr.im/xxxxxx
更改为https://tr.im/xxxxxx
。