奇技淫巧:在 Cloudflare 边缘网络部署你的 Bitwarden

Intro

Demo

项目:qaz741wsd856/warden-worker

!> 此项目不保证对 Bitwarden 所有功能的完整实现,也不保证安全性,图一乐就是!

部署

设置 Github 项目

fork 前言中的仓库,并在 settings - Secrets and variables - Actions 中设置好 Repository secrets

Name Secret
CLOUDFLARE_ACCOUNT_ID 你的 Cloudflare 账号 id
CLOUDFLARE_API_TOKEN API 密匙
D1_DATABASE_ID D1 数据库的 id

其中,API Token 在这里创建,在模板”编辑 Worker“的基础上,再授予编辑 D1 和 Worker KV 的权限即可。

D1_DATABASE_ID 需要创建一个 D1 数据库,并复制它的 id。

最后,运行 Build Action 即可自动构建。

设置 Worker

在 Cloudflare 控制台,找到自动生成的 warden-worker,配置以下密钥:

Name Secret
ALLOWED_EMAILS 允许注册的邮箱,半角逗号分隔
JWT_SECRET 32 位以上随机字符串
JWT_REFRESH_SECRET 32 位以上随机字符串

其他环境变量参见项目内 document。

最后,添加路由即可。

如何正确配置 Cloudflare,给你的博客加速

前言

本文完全基于正常NS接入Cloudflare的流程进行讲解,因此不含优选内容。

配置

缓存

好的缓存配置能让回源流量少很多,也能节省客户端的加载时间。
Cloudflare缓存配置页,将缓存级别设置为忽略查询字符串
浏览器缓存 TTL按需设置,一般设置5天以上。
讲解:
缓存级别的三个选项分别如下解释:

  • 没有查询字符串:一旦静态资源被带上URL参数访问,就回源。
  • 忽略查询字符串:对任何URL参数都返回同一个资源。
  • 标准:对不同URL参数进行不同的缓存。

为什么这么设置:一般的,静态资源不同的URL参数请求取得的结果是相同的,而且设置为标准没有查询字符串有被攻击的风险(对不同参数的资源会进行回源)。
浏览器缓存 TTL:静态资源在浏览器缓存的时长,按照静态资源的变化情况来设置。
如果有条件,还可以用API设置边缘缓存时长,与浏览器缓存 TTL一样,按需设置,一般来说时间长一点较好。
缓存设置

速度

侧边栏“速度-优化”页面。建议全部开启即可。
在“内容优化”中,关闭Rocket Loader。将Auto Minify全部打开。

安全

这里只讲基本的安全配置,不讲自定义规则。
“安全性-自动程序”中,开启自动程序攻击模式
“安全性-设置”中,开启浏览器完整性检查。其他两项按需设置。
建议使用API关闭Privacy Pass(我没找到设置项,可能被CF移除了),因为它会导致一部分验证码绕过漏洞。

使用 CloudFlare Workers 反向代理 Gravatar

前言

博主非常不建议用这种方法自建你的 Gravatar 源。因为 Cloudflare 由于被国内某些小脑萎缩群体用来搭建代理之后,连接延迟大大增加!

方法

科赋锐控制面板,找到左边菜单的Workers
依次点击创建应用程序 -> 创建Worker
随便写一个名称,然后部署。
编辑代码,替换成如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
addEventListener("fetch", event => {
let url = new URL(event.request.url);
url.hostname = "secure.gravatar.com";

let request = new Request(url, event.request);
event.respondWith(
fetch(request, {
headers: {
'Referer': 'https://secure.gravatar.com/',
'User-Agent': 'Cloudflare Workers'
}
})
);
});

大功告成!

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×