![Google 负载均衡器是否支持通过 DNS 映射 mTLS](https://linux22.com/image/791783/Google%20%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E6%98%AF%E5%90%A6%E6%94%AF%E6%8C%81%E9%80%9A%E8%BF%87%20DNS%20%E6%98%A0%E5%B0%84%20mTLS.png)
我目前正在阅读有关全局外部应用程序负载均衡器的信息,它支持:
- 平衡两个云运行功能
- 支持 mTLS
我想将两个域映射到负载均衡器:
- 域名1.com
- 域名2.com
对于每个域,我都希望将它们映射到云运行函数,但我想使用两个不同的客户端证书(具有两组不同的 CA 和中间证书)。据我了解,负载均衡器的 mTLS 功能,您可以有一个信任存储,用于存储 CA 和中间证书,以验证客户端证书,但发送到后端的标头:
- client_cert_sha256_fingerprint
- 客户端证书序列号
- client_cert_uri_sans
- client_cert_dnsname_sans
- 客户端证书存在
- 客户端证书链已验证
不包含任何信息,让我无法区分两组 CA 和中间证书。当然,我无法配置序列号和指纹,但客户端证书的有效期很短,我真正想要做的就是向后端发送一个标头,告诉我使用了哪对 CA 和中间证书。如果我可以在标头中获取客户端证书的颁发者或经过验证的证书,那么我就可以自己解开它,并检查使用了哪个链。我做不到这一点,但它让我想到:我可以这样做:
- 创建两个信任配置和两个信任存储:store_1 和 store_2
- 对 domain1.com 使用 store_1
- 对 domain2.com 使用 store_2
然后我知道,当我获得主机:domain1.com 的 client_cert_chain_verified 时,它已被正确验证,对于 domain2.com 也是如此。
或者我是否必须为此使用两个负载均衡器?
答案1
我相信这可以使用单个负载均衡器来实现,如果您要将域映射到单独的云运行,则可以通过添加后端服务来实现,在单个负载均衡器中,您可以拥有多个后端服务。您可以关注此关联关于如何选择云运行作为负载均衡器的后端服务。
您可以在“证书管理器”下管理您的证书,如下面的屏幕截图[1]所示,我添加了两个具有不同域的证书。要在前端配置中的单个负载均衡器中添加这些证书,请确保在协议中使用 HTTPS 以便可以选择创建或添加证书。
在下面的第二张截图[2]中,你会看到选项中有两个创建的证书(example1 和 example2)。我为第一个证书选择“example”,然后单击“其他证书”以放置第二个证书,即“example2”,请查看下面的截图[3]。
[1]
[2] [3]