正确层的正确SSL证书

时间:2019-03-21 21:57:53

标签: ssl cryptography ssl-certificate cloudflare

我有一个Web应用程序,需要相当严格的安全性。我已经有了一个相当安全的解决方案堆栈,包括Cloudflare,HAProxy和Modsecurity。在构建暂存和生产环境之前,我即将准备好要测试的Dev环境。

我很想在我的负载均衡器和Web服务器上使用Cloudflare Origin SSL证书,但是遇到了问题。

我非常渴望通过Cloudflare实现完全(严格)加密,这意味着Cloudflare将在每次请求时验证证书。因此,我想使用Cloudflare Origin证书,但看起来只能在Load Balancer上使用Cloudflare Origin证书,因为它仅设计用于Cloudflare to Origin数据流,这使我不得不从CA购买证书。用于我的Web服务器。

这是三个SSL证书,涵盖了三个SSL终止点:

End User      --> Cloudflare (via Dedicated cert)
Cloudflare    --> Load Balancer
Load Balancer --> Web Server

我尝试在Web服务器上安装Origin证书,但无法验证该证书的有效性。我什至已经将OpenSSL更新到最新的稳定版本(v1.1.1b),以确保可以为TLS 1.3做准备。

所以我只能想到两种可能的方法:

End User      --> Cloudflare (via Dedicated cert)
Cloudflare    --> Load Balancer (via Cloudflare Origin cert)
Load Balancer --> Web Server (via DigiCert cert)

End User      --> Cloudflare (via Dedicated cert)
Cloudflare    --> Load Balancer (via Digicert cert)
Load Balancer --> Web Server (via Digicert cert)

如果我错过任何重要的事情,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

证书通常包含Web服务器DNS作为“公用名”。您需要使事情与此兼容。这确实意味着要么在负载均衡器上安装其他信任点,要么获得“真实”证书。

通常,您的端点可以使用单个证书来标识自己。问题是,当前您正在使用无法在各个端点建立信任链的证书。您当然可以通过购买可以为其构建链 的证书来解决此问题(例如,从商业CA获得)。但是,您通常还可以更新信任库以包括其他证书,以便可以建立信任链。在这种情况下,您可以使用自己的证书;毕竟这是您的基础架构。

您不想做的是在多台计算机上使用叶子证书,因为这意味着您将私钥复制到更多计算机上。机器的安全性应该是分开的,因此,如果您开始复制PKCS#12文件,则可能需要重新考虑您的密钥管理解决方案(如果您没有明确的KM解决方案,那么这将是合适的时间)。