使用 Cloudflare Tunnel 搭建代理服务并解决 SSL 证书验证问题

使用 Cloudflare Tunnel 搭建代理服务并解决 SSL 证书验证问题

前言

在使用 Cloudflare Argo Tunnel 搭建代理服务的过程中,有时会遇到一些 SSL 证书验证或隧道配置问题。这篇文章将介绍如何通过 Cloudflare Tunnel 创建安全的代理服务,结合 Nginx 做本地代理,处理 SSL 证书问题,并解决 Cloudflare Error 1033 错误。

Cloudflare Tunnel 环境准备

假设你已经有一个运行在本地的应用服务,并且通过 Nginx 代理到外部流量,且 Nginx 本身提供 HTTPS 支持。我们将使用 Cloudflare Argo Tunnel 来将流量从 Cloudflare 的网络安全地引导到你的本地服务。

1、 安装并配置 Cloudflared

首先,你需要安装 cloudflared 来创建和管理 Cloudflare 隧道

1.1 安装 Cloudflared

Linux 服务器上安装 cloudflared

wget -O cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/

确保安装成功: cloudflared --version

1.2 登录 Cloudflare 并进行身份验证

使用以下命令登录 Cloudflare 并选择你想要配置隧道的域名:cloudflared login

在你的浏览器中打开一个页面返回的地址,要求你登录 Cloudflare 并选择需要使用隧道的域名。

2、创建 Cloudflare Tunnel

2.1 创建隧道

使用以下命令创建一个新的隧道,并为其指定名称:cloudflared tunnel create add_your_name

成功后,Cloudflare 会生成一个唯一的隧道 ID 和凭证文件。凭证文件会保存到 ~/.cloudflared/ 目录中,名称类似于 fwdf3fwe4rf-efwef23f-qefqwef2wb3.json

2.2 为隧道配置 config.yml

接下来,你需要创建一个 config.yml 文件,配置该隧道如何处理流量。此文件通常放置在 /etc/cloudflared/~/.cloudflared/ 目录下。

sudo nano /etc/cloudflared/config.yml

在该文件中,配置将流量通过 Nginx 代理到你本地服务的规则。例如,如果你的服务运行在 7001 端口,并通过 Nginx 代理,可以配置如下:

tunnel: fwdf3fwe4rf-efwef23f-qefqwef2wb3  # 替换为你的隧道ID
credentials-file: /root/.cloudflared/fwdf3fwe4rf-efwef23f-qefqwef2wb3.json  # 凭证文件路径

ingress:
  - hostname: your_domain  # 你的域名
    service: http://IP:prot  # 服务的本地端口
  - service: http_status:404        # 其他请求返回404

 

2.3 启动隧道

使用以下命令启动隧道:nohup cloudflared tunnel --credentials-file /root/.cloudflared/fwdf3fwe4rf-efwef23f-qefqwef2wb3.json run add_your_name > cloudflared.log 2>&1 &

这将隧道进程放到后台运行,并将日志输出到 cloudflared.log 文件中。

2.4 检查隧道状态

确认隧道是否成功运行,可以使用以下命令:cloudflared tunnel list

3、TLS/SSL证书验证问题

在实际使用过程中,你可能会遇到 Cloudflare Error 1033,提示 TLS 证书验证失败。这是因为 cloudflared 默认会验证 SSL 证书,而本地服务使用的证书域名与 localhost 不匹配。

为了避免证书验证失败的问题,可以将 cloudflared 配置为通过 HTTP 而非 HTTPS 访问本地服务,绕过 SSL 证书验证。

总结

我们介绍了如何使用 Cloudflare Argo Tunnel 搭建安全的代理服务,配置 cloudflared 来代理流量,并通过 Nginx 转发到本地服务。在遇到 SSL 证书验证失败的问题时,使用 HTTP 代理避免了证书验证错误,解决Cloudflare Error 1033

通过这套流程,你可以安全、便捷地将本地服务暴露在 Cloudflare 的全球网络上,确保应用的性能和安全性。

附Cloudflare 官方资源

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注