1

目前我想将位于子网服务端点后面的 Cosmos DB 实例与位于另一个子网后面的应用程序网关实例连接起来。

因此,我实现了从公共 IP 到 Cosmos DB 实例的 Https 转发。但是,天蓝色的门户网站告诉我数据库是一个不健康的后端服务,并说证书没有列入白名单: 在此处输入图像描述

这些是我到目前为止所做的步骤:

  1. 为从应用程序网关到 Cosmos DB 的连接创建 TLS 证书,其中通用名称 (FQDN) 等于概览中的 Cosmos DB 实例的 URI (example.documents.azure.com):

$ openssl genrsa -out priv-key-db.pem 4096 $ openssl req -new -key priv-key-db.pem -out csr-db.pem $ openssl x509 -in csr-db.pem -out cert-db.cer -req -signkey priv-key-db.pem -days 365

  1. 在 azure 门户中创建适当的 http 规则时上传 .cer 文件: 在此处输入图像描述
4

1 回答 1

2

Azure Cosmos DB 是一项 Azure 托管服务。我们使用巴尔的摩 Cyber​​Trust Root 颁发的公共证书通过 HTTPS 访问它。我认为当您通过应用程序网关访问数据库实例时,您不能为连接创建 TLS 证书,因为如果您想这样做,您还需要将 TLS 证书绑定到 Azure Cosmos DB 服务,否则,探测会失败并且后端未列入白名单。

第 7 步开始- 上传要在启用 SSL 的后端池资源上使用的证书。

默认探针从后端 IP 地址上的默认 SSL 绑定中获取公钥,并将其接收到的公钥值与您在此处提供的公钥值进行比较。

如果您在后端使用主机标头和服务器名称指示 (SNI),则检索到的公钥可能不是流量流向的预期站点。如果您有疑问,请访问后端服务器上的https://127.0.0.1/以确认哪个证书用于默认 SSL 绑定。在本节中使用来自该请求的公钥。如果您在 HTTPS 绑定上使用主机头和 SNI,并且您没有收到来自后端服务器上https://127.0.0.1/的手动浏览器请求的响应和证书,则必须设置默认 SSL 绑定在他们身上。如果您不这样做,探测将失败并且后端不会被列入白名单。

作为一种解决方法,您可以使用一些第三方代理服务器来帮助将 HTTPS 流量重定向到您的后端,例如 Nginx。希望这可以帮助你。

于 2019-07-26T08:44:42.733 回答