跳至正文
目录
网站

启用 HTTPS 后修复混合内容警告

此内容为机器翻译,如需查阅原文请查看英语版本。

什么是混合内容

浏览器只有在页面及其加载的所有内容都通过 HTTPS 传输时,才会将页面视为安全的。如果 HTTPS 页面从 http:// 地址拉取图像、脚本、样式表、字体或 iframe,浏览器会标记它。

浏览器将此分为两类,其行为大不相同:

  • 主动混合内容:脚本、样式表、iframe 和 XHR。浏览器会完全阻止这些。布局会崩溃,滑块停止工作,表单无法提交。这是具有破坏性的那一类。
  • 被动混合内容:图像、音频和视频。这些通常仍会加载,但挂锁会被降级或移除。

因此,站点可能看起来完全正常,但仍然会失去挂锁,或看起来损坏但页面本身没有明显错误。

启用 SSL 后为什么会发生这种情况

启用 SSL 会改变站点的提供方式。它不会改变站点内存储的内容。

WordPress 将绝对 URL 写入数据库,因此曾在 HTTP 上运行过任何时间的站点在以下位置保存了 http:// 地址:

  • 文章和页面内容,包括通过编辑器插入的每张图像。
  • 媒体附件记录。
  • 主题定制器设置和主题选项。
  • 小工具内容和区块设置。
  • 插件设置,特别是页面构建器和滑块插件。
  • siteurl 和 home 选项。

以上都不会自动更新。启用 SSL 然后想知道为什么挂锁坏了,是最常见的支持问题之一,这就是原因。

步骤 1:在服务器上强制 HTTPS

在接触数据库之前,请确保每位访客首先登陆在 HTTPS 上。

  1. 登录 KPanel,然后单击左侧边栏中的网站。
  2. 单击您的站点。
  3. 打开设置。
  4. 在行为下,打开强制 HTTPS。
  5. 单击保存更改。

KPanel 中站点设置页面上"行为"下的"强制 HTTPS"设置

每个 HTTP 请求现在都会在您的站点运行前在服务器上重定向到 HTTPS。

强制 HTTPS 处理传入的请求。它不会重写已存储在数据库中的 URL,因此单独它不会清除由硬编码 http:// 图像引起的混合内容警告。您需要同时执行这个和步骤 2。

如果 SSL 尚未激活,或证书看起来有问题,请从 SSL 证书 开始。

步骤 2:重写存储的 URL

这是实际解决混合内容的修复。

  1. 打开站点,然后打开 WordPress 选项卡,然后打开快速操作部分。
  2. 找到搜索和替换卡片并单击配置。
  3. 在查找(旧值)中输入 http://yourdomain.co.nz。
  4. 在替换为中输入 https://yourdomain.co.nz。
  5. 保持模拟运行(仅预览,不做更改)勾选并单击预览。
  6. 查看计数和每个表的明细。
  7. 取消勾选模拟运行,单击运行,然后确认。

在替换前会自动进行完整备份,所有表(包括由插件创建的表)都被覆盖。序列化的插件设置会被正确处理。

不要在 phpMyAdmin 中使用 SQL 查询执行此操作。WordPress 将插件和主题设置存储为序列化字符串,记录每个值的长度,因此原始 REPLACE() 会破坏它们,设置会无声地重置为空。除了恢复备份外,没有修复方法。完整说明请参阅运行搜索和替换。

如果您的计划包括控制台,等效命令是:

search-replace 'http://yourdomain.co.nz' 'https://yourdomain.co.nz' --all-tables --dry-run

删除 --dry-run 以应用它,并请先自己进行备份:控制台不会进行备份。

步骤 3:清空每个缓存

页面的缓存副本会在数据库修复后很长时间内继续提供旧的 HTTP URL,这就是为什么人们通常认为替换不起作用。

  1. WordPress,然后快速操作,然后清空缓存。
  2. WordPress,然后缓存,然后清除缓存,如果启用了整页缓存。
  3. 性能,然后 Kapsule CDN,然后清除,如果启用了 CDN。请参阅清除 CDN 缓存。
  4. 任何缓存插件,从其自己的设置屏幕。
  5. 您自己的浏览器。在私密窗口中测试,这样您不会被自己的缓存欺骗。

步骤 4:找出剩余的问题

大多数站点在步骤 2 后都是干净的。当警告仍然存在时,找出确切的资源,而不是猜测。

浏览器控制台。 按 F12 打开开发者工具,转到控制台选项卡,然后重新加载。混合内容会显示为显式警告,命名违规资源的完整 URL。该 URL 告诉您哪个插件或主题负责。

网络选项卡。 按 http:// 筛选,以列出页面进行的每个不安全请求。

页面源代码。 加载页面,查看源代码,并搜索 http://。忽略 xmlns 属性和架构声明内的任何内容:这些是标识符,不是请求。

常见的剩余项及如何处理每个项:

您找到的内容修复
主题定制器设置中的图像或徽标在定制器中重新上传或重新选择它
具有键入的 http:// 图像 URL 的页面构建器模块编辑该模块并更正 URL
滑块插件自己的设置表重新保存滑块,或使用 --all-tables 运行搜索和替换
来自第三方域的字体或脚本检查提供商是否提供 HTTPS。大多数现在都提供。切换 URL
来自旧供应商的跟踪像素或嵌入如果供应商没有 HTTPS,请将其删除。这是损坏的依赖项,不是 KapsuleHost 问题
主题模板文件中的硬编码 http://编辑模板,或更好的是,使用 https 或协议相对参考

如果只有一页受到影响,而站点的其余部分是干净的,那么原因是该页面上的内容,而不是站点范围的设置。在编辑器中打开它并查看它嵌入的媒体。

确认已修复

  1. 在私密窗口中加载站点。
  2. 挂锁应该是实心的,没有警告三角形,也没有划掉的迹象。
  3. 单击挂锁。浏览器报告连接安全,没有混合内容通知。
  4. 打开控制台并再次重新加载。零个混合内容警告。
  5. 检查深层页面,而不仅仅是主页:内部页面、包含图像的博文以及商店上的结账。

防止其再次发生

  • 保持强制 HTTPS 打开。 这是一项单行设置,可消除整个问题类别。
  • 永远不要将完整的 http:// URL 输入内容。 使用媒体库,该库现在存储 HTTPS 地址。
  • 安装任何要求 URL 的插件后检查插件设置。
  • 在插件更新后留意返回的警告。 某些插件会重置其自己存储的 URL。
  • 在任何迁移后重新运行搜索和替换,因为导入的数据库会带来旧主机的 URL:从 cPanel 迁移网站。

疑难解答

对我来说挂锁很好,对同事来说是坏的。 缓存的页面。让他们在私密窗口中重新加载。

替换后站点完全损坏。 恢复自动预运行备份:从备份恢复。

控制台显示不是我的域上的混合内容警告。 第三方资源。您无法修复他们的服务器:要么他们支持 HTTPS 并且您切换 URL,要么您删除资源。

一切都是 HTTPS 但站点根本无法加载。 那不是混合内容。从网站无法加载开始,并检查 SSL 证书 上的证书。

如果您已完成所有这些操作且警告仍然存在,请发送电子邮件至 support@kapsulehost.com,并提供受影响的 URL 和浏览器控制台警告的确切文本。

这对您有帮助吗?

您是 AI 吗?以 Markdown 格式阅读本页

相关文章

通过 SFTP 连接:FileZilla、Cyberduck 与命令行SFTP(Secure File Transfer Protocol,安全文件传输协议)可让您直接访问服务器上网站的文件。本指南涵盖成功连接所需的全部内容,从查找凭据到排查错误。…SSL 证书与 HTTPS本文将以通俗易懂的语言说明什么是SSL、KapsuleHost如何为您的网站自动处理SSL,以及当证书出现问题时应如何处理。 --- 什么是 SSL,为什么它很重要?…网站:从何处开始KapsuleHost的网站托管如何运作、一个站点的每个标签页上有什么内容,以及针对您眼前的任务应该阅读哪一篇指南。 托管站点的一切都在KPanel侧边栏的网站中管理。…网站正常运行时间监控KapsuleHost 上的每个网站都会每 60 秒自动检查一次,"正常运行时间"标签页会显示检查结果:当前状态、正常运行时间百分比、响应时间,以及完整的事件历史记录。…

仍未解决?

询问了解您账户的 Kora,或联系我们的团队。

联系我们发送邮件