将Cosmos DB(作为服务端点)作为后端服务器与Application Gateway连接

时间:2019-07-24 16:18:32

标签: azure https azure-cosmosdb vnet

当前,我想将位于子网服务端点后面的Cosmos数据库实例与位于另一个子网后面的应用程序网关实例连接。

因此,我实现了从公共IP到Cosmos数据库实例的Https转发。但是,azure门户告诉我该数据库是不健康的后端服务,并说该证书未列入白名单: enter image description here

这些是我到目前为止完成的步骤:

  1. 为从App Gateway到Cosmos DB的连接创建TLS证书,其中“通用名称”(FQDN)等于“概述”(example.documents.azure.com)中Cosmos DB实体的URI:

$ 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-rule时上载.cer文件: enter image description here

1 个答案:

答案 0 :(得分:1)

Azure Cosmos数据库是Azure托管服务。我们使用拥有巴尔的摩Cyber​​Trust Root颁发的公共证书通过HTTPS访问它。我认为您无法通过应用程序网关访问数据库实例时为连接创建TLS证书,因为如果要执行此操作,还需要将TLS证书绑定到Azure Cosmos数据库服务,否则,探测失败,并且后端未列入白名单。

来自step 7-上传要在启用SSL的后端池资源上使用的证书。

  

默认探针从默认SSL绑定获取公钥   后端的IP地址并比较它的公钥值   会收到您在此处提供的公钥值。

     

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

作为一种解决方法,您可以使用某些第三方代理服务器来帮助将HTTPS通信重定向到您的后端(例如Nginx)。希望对您有帮助。