1
cnZary 2017-04-10 15:39:46 +08:00
你要给 cdn 一个你的 ssl 证书
这个证书用于和客户端加密 然后 cdn 回源的话是直接向你服务器请求数据,如果走 https 的话, cdn 到服务器之间也是加密的 |
2
cnZary 2017-04-10 15:40:30 +08:00
cdn 当然能看到你传输的数据.....信任问题了
|
3
03 2017-04-10 15:40:32 +08:00
CDN 可以看到数据, CDN 和源之间的连接也可以是加密的
|
4
Yc1992 2017-04-10 15:42:41 +08:00
|
5
thekll OP @Yc1992 之前没有提到,还有一个疑问就是 SSL private key 。如果 CDN 除了服务器证书,还需要把证书私钥保存在自己平台上,这本身就可能有安全问题。
|
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 小时)。 |
7
lilydjwg 2017-04-10 18:57:51 +08:00
CDN 能看到你的数据的。如果对安全要求高,内容文件不要放 CDN 。如果对安全要求不高,记得用 SRI 防篡改。
|
8
JJaicmkmy 2017-04-10 19:50:13 +08:00
CDN 就是一个中间人,解密数据,保存下来,然后再用你提供的证书加密。
|
9
libook 2017-04-10 20:20:33 +08:00
8 楼正解。
假设你的使用方式是让用户想要某一资源的时候请求 CDN , CDN 发现自己没有缓存就去请求你的文件源,请求到就在 CDN 上缓存了一份文件,再把文件传回给用户,下次再有用户访问这个文件的时候, CDN 即可立即返回自己缓存的文件。 这个过程中建立了两个连接,分别是 用户-CDN 和 CDN-文件源服务器,这两个连接通常是两个独立的 HTTP 连接,如果使用了 TLS 协议的话就是两个独立的 HTTPS 连接,在文件返回的过程中,文件先在文件源服务器加密,传给 CDN ,然后 CDN 解密,缓存下来,再加密,传给用户,用户解密,使用内容。其实就是两次标准的 HTTPS 传输过程。 |