V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thekll
V2EX  ›  程序员

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

  •  1
     
  •   thekll · 2017-04-10 15:24:22 +08:00 via iPhone · 4921 次点击
    这是一个创建于 2791 天前的主题,其中的信息可能已经有所发展或是发生改变。
    加密内容肯定是不能缓存,那 CDN 就类似反向代理, CDN 也能看到私密数据,同时 CDN 和源服务器之间也存在数据保密问题。这些都不重要还是我理解有问题?
    9 条回复    2017-04-10 20:20:33 +08:00
    cnZary
        1
    cnZary  
       2017-04-10 15:39:46 +08:00
    你要给 cdn 一个你的 ssl 证书
    这个证书用于和客户端加密
    然后 cdn 回源的话是直接向你服务器请求数据,如果走 https 的话, cdn 到服务器之间也是加密的
    cnZary
        2
    cnZary  
       2017-04-10 15:40:30 +08:00
    cdn 当然能看到你传输的数据.....信任问题了
    03
        3
    03  
       2017-04-10 15:40:32 +08:00
    CDN 可以看到数据, CDN 和源之间的连接也可以是加密的
    Yc1992
        4
    Yc1992  
       2017-04-10 15:42:41 +08:00
    thekll
        5
    thekll  
    OP
       2017-04-10 16:37:37 +08:00 via iPhone
    @Yc1992 之前没有提到,还有一个疑问就是 SSL private key 。如果 CDN 除了服务器证书,还需要把证书私钥保存在自己平台上,这本身就可能有安全问题。
    Quaintjade
        6
    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
        7
    lilydjwg  
       2017-04-10 18:57:51 +08:00
    CDN 能看到你的数据的。如果对安全要求高,内容文件不要放 CDN 。如果对安全要求不高,记得用 SRI 防篡改。
    JJaicmkmy
        8
    JJaicmkmy  
       2017-04-10 19:50:13 +08:00
    CDN 就是一个中间人,解密数据,保存下来,然后再用你提供的证书加密。
    libook
        9
    libook  
       2017-04-10 20:20:33 +08:00
    8 楼正解。

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

    这个过程中建立了两个连接,分别是 用户-CDN 和 CDN-文件源服务器,这两个连接通常是两个独立的 HTTP 连接,如果使用了 TLS 协议的话就是两个独立的 HTTPS 连接,在文件返回的过程中,文件先在文件源服务器加密,传给 CDN ,然后 CDN 解密,缓存下来,再加密,传给用户,用户解密,使用内容。其实就是两次标准的 HTTPS 传输过程。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2541 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:57 · PVG 13:57 · LAX 21:57 · JFK 00:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.