正确层上的正确SSL证书

正确层上的正确SSL证书,ssl,cryptography,ssl-certificate,cloudflare,Ssl,Cryptography,Ssl Certificate,Cloudflare,我有一个web应用程序,它需要相当严格的安全性。我已经有了一个相当安全的解决方案堆栈,包括Cloudflare、HAProxy和Modsecurity。在构建登台和生产环境之前,我已经接近准备好测试我的开发环境 我很想在我的负载平衡器和Web服务器上使用Cloudflare源SSL证书,但我遇到了一个问题 我渴望通过Cloudflare实现完全(严格)加密,这意味着Cloudflare将在每次请求时验证证书。因此,我想使用Cloudflare源站证书,以便在负载平衡器上使用Cloudflare源

我有一个web应用程序,它需要相当严格的安全性。我已经有了一个相当安全的解决方案堆栈,包括Cloudflare、HAProxy和Modsecurity。在构建登台和生产环境之前,我已经接近准备好测试我的开发环境

我很想在我的负载平衡器和Web服务器上使用Cloudflare源SSL证书,但我遇到了一个问题

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

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

End User      --> Cloudflare (via Dedicated cert)
Cloudflare    --> Load Balancer
Load Balancer --> Web Server
我尝试在Web服务器上安装源证书,但它无法验证该证书的有效性。我甚至将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)


如果我错过了任何重要的内容,我将非常感谢任何人的提醒。

证书通常包含web服务器DNS作为“通用名称”。你需要使事物与之兼容;这确实意味着要么在负载平衡器上安装一个额外的信任点,要么获得一个“真正的”证书

通常,您的端点可以使用单个证书来标识自己。问题是,当前您使用的证书无法在各个端点构建信任链。当然,您可以通过购买一个证书来解决这个问题,该证书可以构建一个链(例如,从商业CA)。但是,您通常也可以更新信任存储以包括其他证书,以便可以构建信任链。在这种情况下,您可以使用自己的证书;它毕竟是您的基础设施


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

您错过了一个问题。谢谢,大部分都是有意义的。我想我关心的是同一个FQDN需要由三个层提供服务,每个层都有不同的IP。(1) Cloudflare)将FQDN解析为其自己网络上的公共IP。(2) Cloudflare然后将流量路由到*负载平衡器的公共IP(它只接受来自Cloudflare公共IP范围的流量)(3)负载平衡器然后将流量从其内部IP路由到Web服务器的内部IP。IP地址无关紧要;似乎大多数TLS实现都不进行反向查找,所以只要域名指向每个服务的正确位置,就可以了。当然,一个配置良好、安全的DNS总是值得推荐的。
End User      --> Cloudflare (via Dedicated cert)
Cloudflare    --> Load Balancer (via Digicert cert)
Load Balancer --> Web Server (via Digicert cert)