首先我要声明,我并不是一个负载均衡器专家,但我知道,如果您在负载均衡器上卸载 SSL 证书,那么您将获得多个优势。
我们的一位客户希望使用 SSL 通过 CDN 缓存许多网站。为了便于论述,我们假设这些网站https://siteone.com和https://sitetwo.com
他们希望在负载均衡器上安装“错误证书”(例如 CN 为 origin.oursites.com 的证书),这样他们就不必在每次将新网站添加到 CDN 缓存时继续更新证书。他们说这是可以做到的,因为 CDN 允许证书不匹配。
我的问题(可能有点愚蠢)如下:如果证书不匹配,负载平衡如何解密每个包并找出所请求的确切 URL,并确定应将包发送到哪些服务器?我遗漏了什么?
你能帮助我理解这是否真的可行吗?如果可行,为什么它能起作用?
提前致谢,// Francesco
答案1
首先,关于“如果证书不匹配,负载平衡如何解密每个包”,情况是,证书验证是交换(对称)加密密钥的先决条件。如果删除验证步骤(或其中的一部分),则更有可能成功建立加密连接,而不是相反。问题是,
现在您有一个有效的加密连接,但您实际上并不知道对方是谁;它可能是您尝试连接的一方,但也可能是能够拦截您的连接的其他任何人。
如果 CDN 允许在源端使用不匹配的证书,而无需进一步验证,那么这就是糟糕的安全做法。
这将允许简单的中间人攻击(如上所述),因为绝对任何人都可以提供签名但不匹配的证书并被接受为源端。
但是,如果 CDN 有其他方法来验证来源证书,例如固定(识别证书本身,而不是依赖信任链 + 匹配主题名称)用于这些来源的这个有效证书,然后忽略主题名称,那就没问题了,因为它不允许接受任何其他人的不匹配证书。它实际上将验证更改为总体上更严格的模型。
答案2
一点也不愚蠢。回答你的问题,证书不匹配,即证书上的名称与请求的 URL 不匹配,不会影响实际加密。如果可以忽略有关名称不匹配的警告,数据仍将以加密方式发送/接收,就像它是有效匹配一样。
然而,这不是一个好的做法。当前的安全形势意味着 SSL 检查和证书验证将变得更加严格,因此 CDN 接受不匹配的情况并不能确保它会一直保持这种状态。
您的客户可以选择使用通配符证书即对于 mysites.com,可以与 site1.mysites.com、site2.mysites.com、site 一起使用n.mysites.com