所有资源的完整 HTTPS/TLS 设置
当通过 Cloudflare 对 Coolify 资源进行隧道传输时,Cloudflare 通常处理 HTTPS 和 TLS 终止,而 Coolify 通过 HTTP 运行您的资源。
这种设置适用于大多数用户,但有些人可能会遇到 URL 不匹配的问题,特别是对于需要在 Coolify 上使用 HTTPS 来颁发 JWT 令牌或处理回调 URL 的应用程序。
本指南通过配置您的资源以完全在 HTTPS 上运行,绕过 Cloudflare 的 HTTPS 处理,并确保您的应用程序通过安全连接正常工作,从而解决该问题。
谁适合此指南?
本指南非常适合以下用户:
- 已阅读我们的 使用 Cloudflare Tunnel 隧道传输所有资源 或 使用 Cloudflare Tunnel 隧道传输特定资源 指南。
- 需要其通过 Coolify 部署的资源在 HTTPS 上运行,以便应用程序能够进行 JWT 颁发、回调函数或类似功能。
设置要求
要遵循本指南,您需要:
- 按照之前指南中描述的正常工作 Cloudflare 隧道设置。
- 在 Cloudflare 中配置一个域名,以处理 HTTP 流量并重定向到 HTTPS。
开始之前
- 如果您的 Coolify 实例与要配置的域名位于同一个隧道中,请确保在开始这些步骤之前,您可以使用服务器 IP 和端口(例如 203.0.113.1:8000)访问 Coolify 仪表板。
- 默认端口是 8000,但如果您已更改或禁用了它,请确保您可以通过新端口访问 Coolify 仪表板,或者确保服务器上的端口 8000 已重新启用。
示例数据
以下数据在本指南中用作示例。请按照步骤操作时将其替换为您的实际数据:
- 源服务器 IPv4 地址: 203.0.113.1
- 域名: shadowarcanist.com
- 用户名: shadowarcanist
1. 设置源 TLS 证书
您的服务器与 Cloudflare 之间的通信使用 TLS 证书进行加密。
有两种方法可以实现:
- 使用来自 Cloudflare 的 TLS 证书
- 从受信任的公共证书颁发机构 (CA) 获取您自己的 TLS 证书(这需要 DNS 挑战)
以下是 Cloudflare 源证书 和 公共 CA 证书 之间的简明对比表:
| 特性 | Cloudflare 源证书 | 公共 CA 证书 |
|---|---|---|
| 受信任方 | 仅限 Cloudflare | 浏览器、操作系统、Cloudflare |
| 用例 | 仅限 Cloudflare ↔ 源 | 任何直接客户端 |
| 直接浏览器访问 | 如果用户绕过 Cloudflare,会显示证书错误 | ✅ 正常工作 |
| 需要 CF 代理 | ✅ 是 | ❌ 否 |
| 无需 CF 即可工作 | ❌ 否 | ✅ 是 |
| 颁发者 | Cloudflare | 公共 CA(例如:Let's Encrypt) |
| 费用 | 免费 | 免费 |
| DNS 挑战 | ❌ 否 | ✅ 是 |
提示
如果您计划让 Cloudflare 始终位于应用程序前面,请使用 Cloudflare 源证书。否则,请使用公共 CA 证书。
有两种方法可以设置源 TLS 证书,请从以下方法中选择一种:
一个简单的高层概述图,让您直观地了解其工作原理:

A. 创建 Cloudflare 源证书

- 在 Cloudflare 仪表板中,转到 SSL/TLS。
- 选择 Origin Server(源服务器)。
- 选择 Origin Certificates(源证书)
- 单击 Create Certificate(创建证书)按钮。

- 选择 RSA (2048) 作为密钥类型。
- 添加您希望证书覆盖的主机名。
- 将证书有效期设置为 15 年。
- 单击 Create(创建)按钮。
注意!
shadowarcanist.com仅覆盖主域名。*.shadowarcanist.com将覆盖所有子域名。
在 Cloudflare 的免费计划中,通配符证书仅覆盖一层子域名
例如,它适用于 coolify.shadowarcanist.com,但不适用于 www.coolify.shadowarcanist.com。
要覆盖多层,您需要购买 高级证书管理器 ↗

- 选择 PEM 作为密钥格式。
- 复制您的 源证书 并保存在安全的地方
- 复制您的 私钥 并保存在安全的地方
- 单击 Ok(确定)按钮。
接下来,您将这些添加到运行 Coolify 的服务器上,并配置 Coolify 以使用此证书。
B. 将证书添加到您的服务器
SSH 到您的服务器或使用 Coolify 的终端功能。在本指南中,我使用的是外部终端:
ssh shadowarcanist@203.0.113.1登录后,导航到 Coolify 代理目录:
$ cd /data/coolify/proxyCaddy 和 Traefik 之间的证书位置略有不同,因此请根据您正在使用的代理从以下部分中选择。
创建 certs 目录:
$ mkdir certs验证其是否已创建:
$ ls
> acme.json certs docker-compose.yml dynamic现在,导航到 certs 目录:
$ cd certs创建 caddy/data/certs 目录:
$ mkdir -p caddy/data/certs验证其是否已创建:
$ ls caddy/data
> certs现在,导航到 certs 目录:
$ cd caddy/data/certs创建两个新文件用于证书和私钥:
$ touch shadowarcanist.cert shadowarcanist.key验证文件是否已创建:
$ ls
> shadowarcanist.cert shadowarcanist.key打开 shadowarcanist.cert 文件并粘贴来自 Cloudflare 仪表板的证书:
$ nano shadowarcanist.cert 粘贴证书后保存并退出。
对 shadowarcanist.key 文件执行相同操作并粘贴私钥:
$ nano shadowarcanist.key 保存并退出。
现在源证书已安装在您的服务器上。
C. 配置 Coolify 代理以使用源证书

- 转到侧边栏中的 Server(服务器)部分。
- 选择 Proxy(代理)。
- 打开 Dynamic Configuration(动态配置)页面
- 单击 Add(添加)按钮
现在系统将提示您输入动态配置。
Caddy 和 Traefik 之间的动态配置文件略有不同,因此请根据您正在使用的代理从以下部分中选择。

- 为您的配置选择一个名称(必须以
.yaml结尾)。 - 在配置字段中输入以下详细信息:
tls:
certificates:
-
certFile: /traefik/certs/shadowarcanist.cert
keyFile: /traefik/certs/shadowarcanist.key- 保存配置
添加多个证书
如果您想添加多个证书和密钥,可以这样做:
tls:
certificates:
-
certFile: /traefik/certs/shadowarcanist.cert
keyFile: /traefik/certs/shadowarcanist.key
-
certFile: /traefik/certs/name2.cert
keyFile: /traefik/certs/name2.key
-
certFile: /traefik/certs/name3.cert
keyFile: /traefik/certs/name3.key
- 为您的配置选择一个名称(必须以
.caddy结尾)。 - 在配置字段中输入以下详细信息:
*.shadowarcanist.com, shadowarcanist.com {
tls /data/certs/shadowarcanist.cert /data/certs/shadowarcanist.key
}注意
通配符 *.shadowarcanist.com 提供所有子域名的覆盖,如果您仅保护单个域名(即 shadowarcanist.com),请排除它。
- 保存配置
添加多个证书
如果您想添加多个证书和密钥,可以这样做:
*.shadowarcanist.com, shadowarcanist.com {
tls /data/certs/shadowarcanist.cert /data/certs/shadowarcanist.key
}
*.name2.com, name2.com {
tls /data/certs/name2.cert /data/certs/name2.key
}
*.name3.com, name3.com {
tls /data/certs/name3.cert /data/certs/name3.key
}从现在开始,Coolify 将针对与主机名匹配的请求使用源证书。
一个简单的高层概述图,让您直观地了解其工作原理:

我们已经有设置 TLS 证书 DNS 挑战的指南,您可以在此处跟随它们:
完成上述指南中的 DNS 挑战设置后,请返回本指南。
2. 设置 TLS 加密
为了使 Cloudflare 在连接到您的服务器时使用更严格的加密,请在 Cloudflare 中配置您的 TLS 加密:
- 在 Cloudflare 中转到 SSL/TLS。
- 选择 Overview(概览)。
- 单击 Configure(配置)按钮
- 选择 Full (Strict)(完全(严格))作为加密模式。
- 单击 Save(保存)按钮
3. 设置始终使用 HTTPS
为了使 Cloudflare 自动将 HTTP 请求重定向到 HTTPS,请在 Cloudflare 中配置您的重定向:
- 在 Cloudflare 中,转到 SSL/TLS
- 选择 Edge Certificates(边缘证书)。
- 启用 Always Use HTTPS(始终使用 HTTPS)。
4. 配置隧道以使用 HTTPS
- 单击三点图标以打开设置菜单。
- 单击 Edit route(编辑路由)选项
接下来,按如下方式更新服务 URL:
将类型从 http://localhost:80 更改为 https://localhost:443
5. 将 URL 从 HTTP 更新为 HTTPS
现在,在 Coolify 中将所有 URL 从 HTTP 更新为 HTTPS,包括设置页面上的资源和实例域名。
恭喜! 现在您的所有资源始终都在 HTTPS 上运行。
