新功能

使用邮件投递中心掌控您的邮件投递新功能:邮件投递中心,更智能的邮件投递 阅读更多 >

免费 SSL、强制 HTTPS 与混合内容:在 WebGee 上保护您的网站

申请免费的 AutoSSL 证书,将所有访客引导至 HTTPS,并清除导致锁形图标消失的混合内容警告。按照正确的顺序操作,可避免重定向循环和浏览器报错。

AI 总结:

让网站变得安全需要三个独立的步骤:签发证书、将所有访客引导至 HTTPS,以及确保页面上没有任何内容仍通过普通 HTTP 加载。每个步骤解决的问题各不相同,而步骤顺序一旦弄错,就会引发浏览器警告和重定向循环。

本指南将借助您 cPanel 中现成的工具,带您在 WebGee 共享主机和经销商主机上完成这三个步骤。

要点速览

  1. 新域名默认被排除在 AutoSSL 之外,因此在运行 AutoSSL 之前,请先在 SSL/TLS Status 中将其纳入。
  2. 请先安装可正常使用的证书,再强制 HTTPS,否则每位访客都会看到浏览器安全警告。
  3. 对几乎所有网站来说,cPanel 中的 Force HTTPS Redirect 开关都是最佳选择;仅在需要条件规则时才使用 .htaccess。
  4. 重定向生效后如果锁形图标仍未出现,通常是混合内容所致,浏览器控制台会为您列出相关资源。
  5. 只在一个地方强制 HTTPS,并将 Cloudflare 设置为 Full (strict),以避免重定向循环。

开始之前

  • 您的域名已解析到 WebGee 主机账户(请检查其域名服务器或 A 记录)。
  • 您可以登录该账户的 cPanel。
  • 如果网站使用 WordPress,您可以登录 WordPress 仪表盘。
  • 如果域名接入了 Cloudflare,您可以登录 Cloudflare 账户。

第 1 步:通过 AutoSSL 签发免费证书

在账户存续期间,WebGee 会通过 AutoSSL 免费签发并续期 SSL 证书。这些证书由 Sectigo 签发,采用 256 位加密,有效期为 90 天,并会在到期前自动续期。

但有一点需要注意:新域名默认被排除在 AutoSSL 之外,因此直接运行 AutoSSL 并不会产生任何效果。请先将域名纳入:

  1. 在 cPanel 中,打开 Security 部分的 SSL/TLS Status。
  2. 勾选表头中的复选框,一次性选中所有域名。
  3. 选择 Include Domains during AutoSSL。系统会显示确认信息,列出已解除排除的每个域名。
  4. 选择 Run AutoSSL。
  5. 等待检查完成后,刷新页面。

现在,每个域名都会显示绿色锁形图标和 AutoSSL Domain Validated。签发通常只需几分钟,而且纳入操作只需进行一次:后续续期无需您再做任何操作。包含截图的完整操作指南请参阅安装免费 SSL 证书。

全部选中,而不仅仅是主域名

列表中包含 cPanel 自动创建的服务子域名,例如 mail.、webmail.、cpanel.、autodiscover. 和 autoconfig.。请将它们全部纳入。邮件客户端会连接 mail.,而 Outlook 和 Apple Mail 则通过 autodiscover. 和 autoconfig. 进行自动配置。如果没有证书,即使网站本身一切正常,这些连接也会出现安全警告。

确认证书生效

访问 https://example.com,确认没有浏览器警告,或者在终端中测试:

curl -sI https://example.com | head -n 1

cPanel 仪表盘侧边栏也能帮您快速确认:证书就位后,状态会从 Inactive 变为 Active。

AutoSSL 无法签发证书时

如果域名纳入后仍然没有证书,请逐一排查以下原因:

  • 域名未解析到您的账户。AutoSSL 通过 HTTP 获取文件来验证您对域名的控制权,因此如果域名指向其他地方或仍在生效中,验证就会失败。检查域名使用的是哪些域名服务器。
  • 域名受出口限制。根据美国出口法律,Sectigo 无法为某些司法管辖区的域名签发证书。Let's Encrypt 没有此类限制;您可以在 SSL/TLS Status 中将其选为证书提供商。
  • 您需要通配符证书。AutoSSL 只为单个主机名签发证书。如需 *.example.com,请使用 cPanel 中的 Let's Encrypt™ SSL 工具。通配符证书通过 DNS TXT 记录进行验证:如果您的 DNS 托管在 cPanel 中,该过程是自动完成的;如果托管在 Cloudflare 或域名注册商处,则需要手动操作。请参阅使用 Let's Encrypt 安装通配符证书。
  • 它是别名域名下的服务子域名。cPanel 不会为别名(停放)域名创建 mail. 或 cpanel.,因此 AutoSSL 没有可保护的对象。请在邮件客户端中改用主域名的 mail. 主机名;邮箱地址不必与服务器主机名一致。请参阅AutoSSL 为何会跳过部分服务子域名。

先装证书,再设重定向 如果在没有可用证书的域名上强制 HTTPS,每位访客看到的将是浏览器安全警告,而不是您的网站。在开启任何重定向之前,请直接访问 https://example.com 并确认其正常工作。

第 2 步:强制 HTTPS

安装证书并不会自动将访客引导至网站的安全版本,这需要单独设置。

使用 cPanel 开关

对几乎所有网站来说,这都是最佳选择。它在 Web 服务器层面生效,早于任何应用代码运行,而且日后迁移主机时也无需撤销任何设置。

  1. 在 cPanel 中,打开 Domains。
  2. 在列表中找到您的域名。
  3. 开启 Force HTTPS Redirect。

更改会立即生效。如需同时更改多个域名,请在左侧列中勾选这些域名,然后选择表格上方的 Enable Force HTTPS Redirect。

同步更新 WordPress 设置

WordPress 会保存自己的网址。如果其中仍是 http://,它就会继续生成 HTTP 链接,导致访客被来回跳转。

  1. 在 WordPress 中,前往 设置 → 常规。
  2. 将 WordPress 地址(URL)和站点地址(URL)都设置为 https://example.com。
  3. 选择保存更改。

仅在需要条件规则时使用 .htaccess

如果您需要开关无法实现的行为,例如只对某个子目录强制 HTTPS 而不对另一个子目录强制,请将以下内容添加到文档根目录中 .htaccess 文件的最顶部,置于所有现有重写规则之前。每条指令单独占一行;如果写在一起,Apache 会拒绝执行。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

请使用 R=301,而不是单独的 R:永久重定向能让搜索引擎将 HTTPS 地址视为规范地址。请使用 %{HTTP_HOST},而不是写死的域名,这样该规则就能适用于账户中的所有域名和子域名。

检查重定向

curl -sI http://example.com | head -n 3

您应看到 HTTP/1.1 301 Moved Permanently,以及指向 https:// 地址的 Location: 标头。如果显示 302,则说明该重定向是临时的。更多详情请参阅为网站强制启用 HTTPS。

避免重定向循环

重定向循环几乎总是因为在多个地方同时强制了 HTTPS,常见情况是 cPanel 开关、.htaccess 规则和插件同时启用。请只保留其中一种,删除其余的。

如果使用 Cloudflare,Flexible SSL 模式也会导致同样的循环:Cloudflare 通过 HTTP 请求您的网站,服务器又重定向到 HTTPS,如此往复。请将 Cloudflare 的 SSL 模式设置为 Full (strict),该模式可与您的 AutoSSL 证书配合使用。请参阅让网站接入 Cloudflare。

第 3 步:修复混合内容警告

如果重定向已生效,但浏览器仍显示不安全、锁形图标异常,或页面缺少样式,说明页面正在通过普通 HTTP 加载图片、样式表或脚本。这就是混合内容。浏览器会直接拦截脚本和样式表,并对图片发出警告。

找出有问题的资源

打开浏览器控制台:在 Chrome、Edge 或 Firefox 中,右键单击页面并选择检查,然后切换到控制台。在 Safari 中,需要先在高级偏好设置中启用开发菜单。保持控制台打开并刷新页面。每条警告都会列出一个以 http:// 开头的 URL,这就是您需要修复的清单。

修复问题

  • WordPress:确认设置 → 常规中的两个地址都以 https:// 开头,然后安装 Really Simple SSL 插件,它会在页面输出时重写 http:// 引用。如需彻底解决,请使用 Better Search Replace 替换数据库中的 URL。它能正确处理序列化数据,而普通的 SQL 查找替换则会破坏这些数据。
  • 手写代码的网站:将每处引用改为相对路径(例如 /logo.png)或绝对 https:// URL。相对路径不受协议或域名影响,始终有效。
  • 第三方资源:如果外部网站提供 HTTPS URL,请改用该地址。如果没有,请将文件托管到自己的服务器上;除此之外别无他法安全加载。

完整指南请参阅修复混合内容警告。

在无痕窗口中测试 页面的缓存副本可能仍会呈现旧的效果。请清除缓存插件的缓存;如果使用 Cloudflare,也请清除其缓存,并检查多个页面,而不仅仅是首页。

快速回顾

将所有域名纳入 AutoSSL 并运行。确认 https:// 能够正常加载。只在一个地方开启 Force HTTPS Redirect,并同步更新 WordPress 设置。然后借助浏览器控制台清除剩余的 http:// 资源,直到每个页面都重新显示锁形图标。

内置免费 SSL 的主机服务WebGee 主机服务包含免费的 AutoSSL 证书,在您的账户存续期间自动续期。
了解云主机

常见问题

SSL 证书需要多少钱?

完全免费。在共享主机和经销商主机上,WebGee 会在账户存续期间免费签发并续期 AutoSSL 证书。

我需要手动续期证书吗?

不需要。AutoSSL 证书有效期为 90 天,并会在到期前自动续期。域名一旦纳入 AutoSSL,后续续期无需您再做任何操作。

为什么 AutoSSL 没有为我的域名签发证书?

最常见的两个原因是:域名仍被排除在 AutoSSL 之外,或者域名尚未解析到您的账户。这两种情况在界面上看起来完全一样,因此请先检查排除设置,再检查域名使用的是哪些域名服务器。

AutoSSL 可以签发通配符证书吗?

不可以。AutoSSL 只为单个主机名签发证书。如需 *.example.com,请使用 cPanel 中的 Let's Encrypt SSL 工具,它通过 DNS TXT 记录验证通配符证书。

  • SSL
  • HTTPS
  • AutoSSL
  • cPanel
  • WordPress
在 Google 上将 WebGee 设为首选来源
免费 SSL、强制 HTTPS 与混合内容:在 WebGee 上保护您的网站 | WebGee