为所有资源设置完整的 HTTPS/TLS
当通过 Cloudflare 在 Coolify 中进行资源隧道传输时,Cloudflare 通常会处理 HTTPS 和 TLS 终止,而 Coolify 会通过 HTTP 运行您的资源。
这种设置对大多数用户都有效,但有些用户可能会遇到 URL 不匹配的问题,特别是对于需要在 Coolify 上使用 HTTPS 来颁发 JWT 令牌或处理回调 URL 的应用程序。
本指南通过配置您的资源完全在 HTTPS 上运行来解决这个问题,绕过 Cloudflare 的 HTTPS 处理,确保您的应用程序使用安全连接正常运行。
适用人群
本指南适合以下用户:
- 已遵循我们的使用 Cloudflare 隧道传输所有资源或使用 Cloudflare 隧道传输特定资源指南。
- 需要在 Coolify 上部署的资源在 HTTPS 上运行,以满足应用程序对 JWT 颁发、回调函数或类似功能的 HTTPS 要求。
设置要求
要遵循本指南,您需要:
- 如先前指南所述的正常工作的 Cloudflare 隧道设置。
- 在 Cloudflare 中配置的域,用于处理 HTTP 流量并将其重定向到 HTTPS。
开始前的准备
- 如果您的 Coolify 实例与您想要配置的域在同一隧道上,请确保在开始这些步骤之前,您可以使用服务器 IP 和端口(例如 203.0.113.1:8000)访问 Coolify 仪表板。
- 默认端口是 8000,但如果您已更改或禁用了它,请确保可以通过新端口访问 Coolify 仪表板,或者在服务器上重新启用端口 8000。
重要部分快速链接:
- 创建 Cloudflare 源证书
- 将源证书添加到服务器
- 配置 Coolify 使用源证书
- 在 Cloudflare 上设置加密模式
- 配置隧道使用 HTTPS
- 配置 Cloudflare 始终使用 HTTPS
- 将 URL 从 HTTP 更新为 HTTPS
示例数据
以下数据在本指南中用作示例。请在执行步骤时将其替换为您的实际数据:
- 源服务器的 IPv4 地址:203.0.113.1
- 域名:shadowarcanist.com
- 用户名:shadowarcanist
1. 创建 Cloudflare 源证书
要创建您的 Cloudflare 源证书,请按照以下步骤操作:

- 在您的 Cloudflare 仪表板中,转到 SSL/TLS。
- 选择 源服务器。
- 点击 创建证书 按钮。
系统会要求您选择私钥类型、主机名和证书有效期。

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

- 选择 PEM 作为密钥格式。
- 复制您的 证书。
- 复制您的 私钥。
接下来,您将把这些添加到运行 Coolify 的服务器上,并配置 Coolify 使用此证书。
2. 将源证书添加到服务器
通过 SSH 登录到您的服务器或使用 Coolify 的终端功能。在本指南中,我使用的是 SSH:
ssh shadowarcanist@203.0.113.1登录后,导航到 Coolify 代理目录:
cd /data/coolify/proxy检查您是否有 certs 文件夹:
ls
> acme.json docker-compose.yml dynamic如果没有 certs 文件夹,请创建它:
mkdir certs验证它已创建:
ls
> acme.json certs docker-compose.yml dynamic现在,导航到 certs 目录:
cd certs创建两个新文件用于存储证书和私钥:
touch shadowarcanist.cert shadowarcanist.key验证文件已创建:
ls
> shadowarcanist.cert shadowarcanist.key打开 shadowarcanist.cert 文件并粘贴来自 Cloudflare 仪表板的证书:
nano shadowarcanist.cert粘贴证书后保存并退出。
对 shadowarcanist.key 文件执行相同操作并粘贴私钥:
nano shadowarcanist.key保存并退出。
现在源证书已安装在您的服务器上。
3. 配置 Coolify 使用源证书
现在,在您的 Coolify 仪表板中:

- 在侧边栏中转到 服务器 部分。
- 选择 代理。
- 打开 动态配置 页面
- 点击 添加 按钮
现在您将被提示输入动态配置。

- 为您的配置选择一个名称。
- 在配置字段中输入以下详细信息:
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- 保存配置
从现在开始,Coolify 将为匹配主机名的请求使用源证书。
4. 在 Cloudflare 上设置加密模式
要在 Cloudflare 上设置加密,请按照以下步骤操作:

- 在 Cloudflare 中转到 SSL/TLS。
- 选择 概览。
- 点击 配置 按钮

选择 完全(严格) 作为加密模式。
5. 配置隧道使用 HTTPS
要配置隧道使用 HTTPS,请按照以下步骤操作:

- 点击三点图标打开设置菜单。
- 选择 编辑 以允许修改主机名。
接下来,按如下方式更新主机名:

- 将类型从 HTTP 更改为 HTTPS。
- 将端口从 80 更改为 443。

- 点击 其他应用程序设置。
- 选择 TLS。
- 在 源服务器名称 字段中输入您的根域名。
- 向下滚动并点击 保存主机名 按钮。
6. 配置 Cloudflare 始终使用 HTTPS

- 在 Cloudflare 仪表板中,转到 SSL/TLS。
- 选择 边缘证书。
- 启用 始终使用 HTTPS。
7. 将 URL 从 HTTP 更新为 HTTPS
现在,在 Coolify 中将所有 URL 从 HTTP 更新为 HTTPS,包括资源和设置页面上的实例域。


恭喜! 您的所有资源现在始终在 HTTPS 上运行。
