如何在使用 cloudflare 的基础上进行双向 tls 验证

2021-03-31 16:23:31 +08:00
 sxbxjhwm

公司有一项业务使用了双向 tls 验证客户的身份,现在为了避免遭受攻击需要配置 cdn 。

但配置了以后发现服务一直响应 400 The SSL certificate error,直接携带客户端证书请求源站没有问题。查阅了文档 Managing Cloudflare Origin CA certificates 后发现可能是 cloudflare 以为我需要保证他们到源服务器之间连接的安全,向我们发送了 cf 自己的客户端证书。。。

想知道各位有没有类似的应用,正确配置 cf 的姿势是怎么样的?如果 cf 没有支持,还有没有别的 cdn 服务提供商支持双向 tls 认证?蟹蟹

2609 次点击
所在节点    全球工单系统
9 条回复
ryd994
2021-03-31 17:46:12 +08:00
CDN 的工作方式就是一种中间人
所以你想要双向认证是做不到的,否则 CDN 还怎么缓存数据?

cloudflare 有一种 keyless mode,能够在不持有私钥,不影响握手的情况下解密数据。但是不知道是否能支持双向。建议你向 cloudflare 客服咨询。这是企业版功能,价钱肯定不便宜
eason1874
2021-03-31 18:19:09 +08:00
cf 的不了解,百度智能云 CDN 和阿里云 CDN 支持,可以试试。阿里云的没开放控制台自助配置,要提交工单问。
ruixue
2021-03-31 19:17:55 +08:00
cloudflare 可以配置客户端证书,但是需要用 cloudflare 的 CA 来签发,无法使用自己的 CA
https://developers.cloudflare.com/ssl/client-certificates
9yu
2021-03-31 21:13:57 +08:00
可以做到,TLS Passthough 模式,高级版或企业版才有。
https://developers.cloudflare.com/spectrum/
ZeroClover
2021-03-31 21:18:31 +08:00
sxbxjhwm
2021-03-31 21:27:47 +08:00
@ruixue @ZeroClover 不太放心把客户 dn 信息放 cf

@9yu 了解了我看一下谢谢
sxbxjhwm
2021-03-31 21:32:37 +08:00
@eason1874 😂阿里云看过了,有个 scdn 要六千多一个月。。域名数 20 还不给改
eason1874
2021-03-31 22:51:23 +08:00
@sxbxjhwm 不如简单改造一下业务适应 Cloudflare 。

双向 TLS 验证环节独立出来做一个登录服务,部署在自己的服务器或者亚马逊、阿里云的 API 网关(这些支持 HTTPS 双向认证),用户证书验证后带令牌跳转访问在 Cloudflare 的业务域名。

业务域名通过 Cloudflare Workers 的边缘脚本验证令牌,通过才把请求转到后端。令牌可以是 JWT,也可以允许吊销,Workers 支持 KV 键值存储。Workers 也不贵,每天 10 万次免费,付费最低 $5/mo 支持一千万请求了。

这样主业务依然受 Cloudflare 防护,万一登录服务被攻击,临时不能登录也不影响已登录用户,影响不会太大。
sxbxjhwm
2021-04-01 09:45:09 +08:00
@eason1874 好像挺有意思的,我去研究研究,估计改造起来挺麻烦的,那业务一半都是操作证书的,本身有一套的签发吊销续签功能,改的话估计都得改成调 api

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/766908

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX