HTTPS 现在是基本配置:没有它,浏览器会标“不安全”,搜索引擎会降权,很多现代 Web API(地理位置、Service Worker)直接不可用。ChemiCloud 全线套餐都送免费的 Let’s Encrypt 证书,配置只需要几分钟。
一、确认证书是否已自动签发
ChemiCloud 的 AutoSSL 会在域名解析到服务器后自动签发证书,通常在 DNS 生效后 1–2 小时内完成。
检查方式:cPanel → SSL/TLS Status。列表里每个域名前面:
- 绿色锁 = 证书已签发且有效
- 红色感叹号 = 未签发或已过期
如果还没签发,选中域名,点 Run AutoSSL 手动触发一次,等几分钟刷新。
二、AutoSSL 失败的常见原因
1. DNS 还没指向这台服务器。
Let’s Encrypt 要通过 HTTP 验证域名归属,域名必须先解析到这台服务器。用 dig +short example.com 确认返回的是 cPanel 里那个 IP。
2. Cloudflare 橙色云朵开着。 开启代理后,验证请求会被 Cloudflare 拦下。临时把 DNS 记录的代理状态改成“仅 DNS”(灰色云朵),Run AutoSSL 成功后再打开。
3. 网站根目录有重定向规则挡住了验证路径。
.htaccess 里如果有把所有请求强制跳转的规则,会连带挡掉 /.well-known/acme-challenge/。在强制 HTTPS 规则前面加一条排除:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/ [NC]
RewriteRule ^ - [L]
4. 域名带 www 但没添加。
证书要同时覆盖 example.com 和 www.example.com。在 cPanel → 域名里确认两个都存在。
三、把 WordPress 切到 HTTPS
证书生效后,网站还不会自动用 HTTPS,需要改三处。
1. 修改站点地址
WordPress 后台 → 设置 → 常规:
- WordPress 地址(URL):
https://example.com - 站点地址(URL):
https://example.com
两个都改,保存后会要求重新登录,正常现象。
2. 替换数据库里的旧链接
历史文章里的图片、内链可能还写着 http://,会造成“混合内容”警告(地址栏的锁变成叹号)。用插件批量替换:
安装 Better Search Replace 插件 → Tools → Better Search Replace:
- Search for:
http://example.com - Replace with:
https://example.com - Select tables:全选
- 先勾上 “Run as dry run?” 跑一次看看会改多少条,确认无误后取消勾选再执行。
执行前务必先在 JetBackup 里做一次手动备份。批量替换数据库是不可逆操作。
3. 强制全站跳转
在 public_html/.htaccess 文件最顶部加入:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
编辑方式:cPanel → 文件管理器 → 进入 public_html → 右上角“设置”里勾选 显示隐藏文件 → 找到 .htaccess → 右键 Edit。
改完在无痕窗口访问 http://example.com,应该自动跳到 https://。
四、www 与非 www 只保留一个
同一个网站有两个地址(带 www 和不带)对 SEO 不利。选一个作为主域名,另一个 301 跳过去。
统一到不带 www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
统一到带 www:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
选一种就好,不要两条同时存在,会造成无限重定向。
五、排查“重定向次数过多”
如果改完出现 ERR_TOO_MANY_REDIRECTS,按顺序查:
- Cloudflare 的 SSL 模式。在 Cloudflare → SSL/TLS → Overview,必须选 Full 或 Full (strict)。选成 Flexible 一定会死循环:Cloudflare 用 HTTP 回源,服务器又把它跳回 HTTPS,来回打转。
- .htaccess 里是否有重复的跳转规则。WordPress 插件(如某些安全插件)也会自己写一份,两份叠加就会冲突。
- WordPress 后台的两个地址是否一致,比如一个带 www 一个不带。
- 有些主题或插件(如 Really Simple SSL)自带强制 HTTPS 功能,和
.htaccess规则重复时关掉其中一个。
六、证书续期要管吗?
不用。Let’s Encrypt 证书有效期 90 天,AutoSSL 会在到期前自动续签。你唯一需要注意的是:不要在续签窗口期把域名解析挪走,否则验证会失败。如果收到证书即将过期的邮件提醒,去 SSL/TLS Status 里手动 Run 一次即可。