Cloudflare 可以免费提供 DNS 服务,此外还可通过配置加密模式为网站强行开启 https。(注意加密模式仅对 Proxy 记录生效)
全站加密模式
可以在 SSL/TLS 面板切换加密模式:
picture 1
- Off - 不会变更源站的加密模式。
- Flexible - 会加密从浏览器到 Cloudflare 之间的流量,但是 Cloudflare 到源站的流量会遵循源站。
- Full - Cloudflare 除了会加密浏览器到它的流量外,还会加密从 Cloudflare 到源站的的流量,但是 Cloudflare 并不会验证证书的可信性(是否由可信 CA 机构颁布)。
- Full (strict) - 和 Full 相同,但是还会服务器证书必须可信。
需要注意此处的加密模式会影响到所有的开启了 Proxy 的 DNS 记录,而如果有某些 DNS 记录存在特殊需求,可以使用 Rules 来进行配置。
指定加密模式
通过 Rules 我们可以为特定的请求生效特定的加密模式。
picture 2
以针对某域名开启特定的加密模式为例,在 Rules 中的 Configuration Rules 中可以新增一条规则。
首先在规则中通过 hostname 进行匹配:
picture 3
然后在下方的 SSL 配置中选择对应的配置:
picture 4
然后只需要发布后规则即可生效。
模式选择
最后聊下针对站点的加密模式的选择。
- 如果源站支持 SSL 加密,那么就直接开启
Full (strict)
,比如各种服务如:GitHub Pages、Vercel、GitLab Pages、Firebase Pages 等,又或者源站本身已经有可信的证书。 - 如果源站不支持 SSL 加密,那么可以直接开启
Flexible
,然后配合 iptables 屏蔽从 Cloudflare 外来的流量。 - 如果想要更安全可以直接使用一些脚本自动生成 self-signed 证书,然后选择
Full
模式。