对于 SSL/TLS, CDN 实现缓存和加速的原理是什么?

2017-04-10 15:24:22 +08:00
 thekll
加密内容肯定是不能缓存,那 CDN 就类似反向代理, CDN 也能看到私密数据,同时 CDN 和源服务器之间也存在数据保密问题。这些都不重要还是我理解有问题?
4833 次点击
所在节点    程序员
9 条回复
cnZary
2017-04-10 15:39:46 +08:00
你要给 cdn 一个你的 ssl 证书
这个证书用于和客户端加密
然后 cdn 回源的话是直接向你服务器请求数据,如果走 https 的话, cdn 到服务器之间也是加密的
cnZary
2017-04-10 15:40:30 +08:00
cdn 当然能看到你传输的数据.....信任问题了
03
2017-04-10 15:40:32 +08:00
CDN 可以看到数据, CDN 和源之间的连接也可以是加密的
Yc1992
2017-04-10 15:42:41 +08:00
thekll
2017-04-10 16:37:37 +08:00
@Yc1992 之前没有提到,还有一个疑问就是 SSL private key 。如果 CDN 除了服务器证书,还需要把证书私钥保存在自己平台上,这本身就可能有安全问题。
Quaintjade
2017-04-10 16:52:33 +08:00
Cloudflare 的 Keyless SSL 就是解决私钥保管的问题,既不需要把私钥保存在 CF 的服务器上,也不用 CF 以你的名义申请私钥。
不过 CF 的服务器应该还是能看到解密的数据,只是每次(指每个 session ,不是指每个 request)要问 key server 解密一下 secret ,获得解密的 secret 之后只能在 session 限定的时间内与用户通讯( 5 分钟到 48 小时)。
lilydjwg
2017-04-10 18:57:51 +08:00
CDN 能看到你的数据的。如果对安全要求高,内容文件不要放 CDN 。如果对安全要求不高,记得用 SRI 防篡改。
JJaicmkmy
2017-04-10 19:50:13 +08:00
CDN 就是一个中间人,解密数据,保存下来,然后再用你提供的证书加密。
libook
2017-04-10 20:20:33 +08:00
8 楼正解。

假设你的使用方式是让用户想要某一资源的时候请求 CDN , CDN 发现自己没有缓存就去请求你的文件源,请求到就在 CDN 上缓存了一份文件,再把文件传回给用户,下次再有用户访问这个文件的时候, CDN 即可立即返回自己缓存的文件。

这个过程中建立了两个连接,分别是 用户-CDN 和 CDN-文件源服务器,这两个连接通常是两个独立的 HTTP 连接,如果使用了 TLS 协议的话就是两个独立的 HTTPS 连接,在文件返回的过程中,文件先在文件源服务器加密,传给 CDN ,然后 CDN 解密,缓存下来,再加密,传给用户,用户解密,使用内容。其实就是两次标准的 HTTPS 传输过程。

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

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

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

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

© 2021 V2EX