使用 Cloudflare Zero Trust 保护你的 Web 应用

有些时候我们跑一些 web 应用,想把他们放在公网上,但是又不能每个人都可以访问。如果这个程序不支持通过身份验证,那么之前的做法大概会前面套上一个 nginx 之类的反向代理,在反向代理中配置身份认证。

这样…… 也不是不行,但是配置 nginx 就让人感觉很繁琐!在有了 Cloudflare Zero Trust 之后,我们可以利用 Cloudflare 做到这种身份认证的事情。

我这刚好有一个 redis insight,接下来就可以说一下这个东西怎么跑

Redis Insight

Redis 官方出的一个用户管理 redis 的工具,可以增删改查啦什么的。跑起来很容易,用 docker 跑是这样的:才不用那个 electron 套壳呢

  1. docker run d restart=unlessstopped name=redisinsight \
  2. v redisinsight:/db -p 127.0.0.1:8001:8001 \
  3. -e RITRUSTEDORIGINS=https://redis.dmesg.app \
  4. redislabs/redisinsight

由于 Redis Insight 有 CORS 检查,因此这里要设置环境变量来控制,要记住不可以带 /

然后把容器连接到网络,因为我的 redis 通过 docker-compose 跑了两个,因此要把容器和网络连接起来:

  1. docker network connect botsrunner_default redisinsight
  2. docker network connect yyetsbot_default redisinsight

创建 Argo tunnel,添加 Public Hostname

如下图所示。此时redis.dmesg.app应该可以访问了

2023042003301977

开启 access

Zero Trust – Access – Applications – Add Application – Self-hosted

选择对应的会话有效期,对应的子域名

2023042003302065

下一页 configure rules 选择最简单的 email 方式即可

2023042003302199

此时打开对应的网站,就会发现已经进入了验证页面

2023042003302235

输入邮箱验证之后就可以正常访问了。

在 Redis Insight 中,添加连接的时候,用redis.yyetsbot_default 来表示yyetsbot_default这个网络的redis service。

2023042003342554

常见问题

收不到验证码

别怕,可能是被拦截了,比如说 Gmail……

2023042003302348

Redis Insight 页面无法显示

应该是 cache 的问题,开 development mode 暂时绕过,验证通过之后再关掉好了

Related Post

发表回复