找出哪些资源没有通过HTTPS


92

我有一个ASP.NET站点,该站点应完全通过HTTPS传输。但是,在Google Chrome浏览器中,我收到警告,指出该页面包含不安全的资源。我如何找出那些资源以及为什么它们不会通过HTTPS?




12
铬Devtools>网络选项卡>右键单击任意列标题>点击“计划”
科斯塔

当用户将URL图像嵌入stackexchange帖子中时,通常使用http版本而不是https。
jiggunjer 2015年

我知道这个帖子是有点老,但在情况下,它可以帮助任何人,有一个桌面应用程序,你现在可以运行扫描和报告混合内容问题的网站上找到:ecommerce.co.uk/httpschecker希望它能帮助:)
stilliard

Answers:


44

通常发生这种情况是因为您在不使用https的情况下加载图片,javascript包含文件或外部CSS文件。您可以使用诸如FireBug之类的程序:http : //getfirebug.com/

FireBug会告诉您元素的加载方式以及哪些元素不会通过ssl层。如果您没有安装Firefox,那么我可以肯定Chrome内置了类似于FireBug的功能。

这是使用Firebug的方法:

  1. 打开萤火虫
  2. 单击控制台选项卡
  3. 重新载入页面
  4. 任何https错误都将显示在控制台中,并告诉您哪个资源不起作用。

希望这可以帮助


17
你可以再详细一点吗?

2
在“网络”选项卡被激活的情况下加载页面。页面加载完成后,将鼠标悬停在每个条目上,GET条目将显示它正在检索的URL。您最终将找到通过HTTP而不是HTTPS检索的那些。
Joe C

2
您是否认为手动检查整个资产堆栈中的每个资产?那么一些https过滤呢?
palmic

5
要添加到@phantom的解决方案中,可以右键单击“网络”选项卡中的条目,然后选择“全部复制为HAR”。这会将所有条目复制为类似JSON的对象,这使粘贴到“ http:”的编辑器和Ctrl-F变得容易。但是,无法相信开发人员工具的“网络”标签中没有“方案”标签。
保护者

3
我只是遇到了同样的问题,但是所有图像,css和js引用都是https。但是有些是红色的。因此,我复制了URL,只有将它们粘贴到自己的浏览器选项卡中时,我才发现服务器的证书已过期。因此,这是另一个不明显的原因,您可能会收到该错误。
stu 2012年

87

我刚刚在Chrome中也遇到了这个问题。我检查了“网络”选项卡,但所有资源均通过https加载。

解决方案:关闭Chrome,然后重新打开。

Chrome浏览器必须缓存其安全内容检测,以便即使您解决了这些问题,不安全的内容消息也不会消失。


18
关闭chrome太过分了,您只需关闭标签即可。
Patrick James McDougle 2013年

1
我与Chrome之间存在着爱恨交织的关系-此类问题在“仇恨”列下。-_-浪费了很多时间。谢谢您的解决方案,它为我工作。
2014年

@MjrKusanagi感谢您的技巧。.RESTART也为我工作..我在“网络”选项卡或控制台错误中看不到任何内容。.更改了所有默认选项。 https://开头,在地址栏中..
乐凯

我的问题是页面上的<form>标记。如果您的操作参数指向非安全的URL,Webkit的网络调试器将不会显示给您!
比利

38

我与提供此在线脚本的人无关,但是它很容易并且可以在任何浏览器中添加书签。可以很好且快速地解决该问题 。http://www.whynopadlock.com


嘿,那真的很有帮助,在尝试该脚本之前,我找不到罪魁祸首,发现它是与http而不是https链接的Google字体!
丹尼尔·瓦拉达斯

这是唯一暴露问题的东西,谢谢。原来我有一个<form>标记,它引用了对http的操作-而不是https!
比利

8

在Google Chrome中:您可以ConsoleInspect Element窗口的标签中查看有问题的资源。

它将被列为:

在页面https://example.com/page显示不安全内容从HTTP://example.com/resource

当然,您可能必须Inspect Element窗口已打开的情况下重新加载页面。


3
网络标签>右键单击任何列标题>单击“方案”
2014年

1
@Costa:这种方法的问题在于它不会列出Chrome阻止的内容。答案中的解决方案同时显示了两者。
科兰2014年

这被称为“控制台抽屉”,可通过单击检查器右上角附近的“>☰” smbol打开。
戴尔·安德森

对于页面上提交到非安全位置的表单,Chrome也会发出此警告。
戴尔·安德森

好答案。我修复了“网络”选项卡中列出的所有http问题。但是控制台告诉我,我还必须修复新闻稿的表单目标才能使其使用https。显然,在SSL页面上没有表单目标可以针对非SSL页面。
Buttle Butkus,2015年

6

最简单的方法之一是在Firefox中右键单击该页面,然后选择“查看页面信息”。然后转到“媒体”选项卡,找到从http而不是https加载的任何内容。


2
这对于图像等非常有用,但通常是链接的Java脚本或CSS文件导致HTTPS中断。
Joe C

这是在特定页面中找到罪魁祸首链接的最快解决方案。我认为这是此页中所有解决方案中最好的解决方案。.谢谢
Pavan Kumar 2014年

这不起作用,因为它不显示其他脚本加载的javascript。它仅显示在HTML中直接链接的元素
Janning,2016年


2

我注意到当我遇到此问题时,工具栏(uTorrent)导致了错误。我删除了工具栏,错误消失了。不知道为什么工具栏会在我的网站上引起错误,但是SSL证书在这里没有更多问题。


1

在Chrome浏览器中,您可以通过执行以下操作来找出通过http还是https加载了哪些资源:

1)在扳手菜单中,选择工具>开发人员工具

2)点击“资源”工具栏图标

3)展开Frames文件夹以查看不同的页面。展开要查看其资源的页面。然后列出页面的各个资源,并按图像,脚本和样式表细分

4)要查看用于加载该资源的URL,只需将鼠标悬停在资源名称上,该URL就会显示为http或https。您还可以单击图像名称以在右侧查看图像及其URL。


3
网络标签>右键单击任何列标题>单击“方案”
2014年

大。他们为什么称它为“方案”而不是“协议”?:/
Aamir Afridi 2014年

1

为此,我右键单击“网络”选项卡视图中的列标题,然后选择“协议”。

如果您然后单击“协议”标题,则报告的内容将按HTTPS分组,依此类推。


在Chrome v69中,我认为在这种情况下,“方案”列会更有用。
塔索斯

0

Chrome拥有自己的开发者工具。

您可以右键单击页面,进行检查..然后单击“网络”选项卡并重新加载页面。您将看到工作流程。


0

我不知道是否有人会检查这个答案,或者您可能已经找到了解决方案,但是无论如何,我的答案可能会帮助其他遭受类似问题困扰的人

http://www.whynopadlock.com/

这是我用来检查加载到我的页面的不安全内容/文件的链接。

希望能帮助到你。:)


0

我只是在chrome中发现了相同的行为(firefox显示了绿色锁定),即使所有资源都是通过https加载的。

在我的情况下,原因是服务器支持已损坏的(google poodle)SSLv3。

像这样设置ssl_protocols以排除nginx.conf中的SSLv2

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE

为我解决了问题。

我认为不幸的是chrome不能使这个原因更加透明。如果没有记错的话,“此页面会不安全地加载某些资源”会产生误导。


0

如果您想从自己的桌面上抓取自己的网站,以获取已加载的所有资源的列表(不过请注意,该列表不是由javascript加载的),如果使用Windows,则可以使用Xenu的链接搜索。导出TSV文件,然后右键单击并使用excel打开,然后按URL排序,然后可以找到该站点上所有页面的那些讨厌的http资源!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.