You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

借助Docker与Cloudflare Tunnels实现WordPress简易HTTPS配置

解决WordPress通过Cloudflare Tunnel实现HTTPS的无证书方案

核心原理

Cloudflare Tunnel本身已经为你的域名提供了自动续期的免费SSL证书,公网到Cloudflare边缘节点的连接是HTTPS加密的,问题出在WordPress无法识别自己处于反向代理后的HTTPS环境,导致生成的链接还是HTTP。我们只需要让WordPress信任Cloudflare的代理头,并强制使用HTTPS即可,全程无需手动配置和维护SSL证书。

可行方案

1. 修改WordPress配置文件(wp-config.php)

直接在WordPress的配置文件中添加代码,让它识别Cloudflare发送的代理头,并强制站点使用HTTPS:

  • 进入Docker的WordPress容器:docker exec -it 你的wordpress容器名 /bin/bash
  • 编辑/var/www/html/wp-config.php,在/* That's all, stop editing! Happy publishing. */之前插入以下代码:
// 识别Cloudflare代理的HTTPS协议
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}
// 强制站点URL为HTTPS
define('WP_HOME', 'https://你的公网域名');
define('WP_SITEURL', 'https://你的公网域名');
  • 保存文件后退出容器,WordPress会自动切换到HTTPS模式。

2. Docker Compose环境变量配置(更适合容器化部署)

如果用Docker Compose管理WordPress,直接在docker-compose.yml的WordPress服务中添加环境变量,无需手动修改配置文件:

services:
  wordpress:
    image: wordpress:latest
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
      # 添加HTTPS强制配置
      WORDPRESS_CONFIG_EXTRA: |
        if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
            $_SERVER['HTTPS'] = 'on';
        }
        define('WP_HOME', 'https://你的公网域名');
        define('WP_SITEURL', 'https://你的公网域名');
    volumes:
      - wordpress_data:/var/www/html

重启容器后配置自动生效。

3. 配合Cloudflare全局HTTPS重定向

在Cloudflare控制台中开启始终使用HTTPS,进一步确保所有访问都强制走HTTPS:

  • 进入Cloudflare Dashboard -> 你的域名 -> SSL/TLS -> Edge Certificates
  • 找到“始终使用HTTPS”选项并开启,所有HTTP请求会被Cloudflare自动重定向到HTTPS。

内容的提问来源于stack exchange,提问作者johnykes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 10:45:11