Cosmos DB 模拟器容器 - 无法导出证书

问题描述 投票:0回答:2

我正在尝试使用以下链接运行 Cosmos DB 模拟器 Windows 容器映像:

https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-develop-emulator?tabs=docker-windows%2Ccsharp&pivots=api-nosql

我正处于容器正在运行的位置,并且可以看到数据浏览器。 所以这很好! 我现在尝试导出模拟器的证书,以便可以使用这些说明在本地导入并运行(来自 https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-develop -emulator?tabs=docker-windows%2Ccsharp&pivots=api-nosql#export-the-emulators-tlsssl-certificate):

curl -k https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt

但是,这会导致“未找到”。 我在浏览器中尝试过该 URL,结果出现 404。

  1. 我做错了什么吗? 我希望能够使用这个容器而无需在本地安装模拟器。
  2. 是否有另一种方法可以从容器中获取此证书,以便我可以在没有警告的情况下进行连接? 我还将通过 .NET 应用程序连接到此,因此我希望不必费力去禁用 TLS 验证。

谢谢。

azure docker azure-cosmosdb
2个回答
1
投票

是否有另一种方法可以从容器中获取此证书,以便我可以在没有警告的情况下进行连接?我还将通过 .NET 应用程序连接到此,因此我希望不必费力去禁用 TLS 验证。

为了导出 SSL 证书,您可以按照以下方法操作 -

  1. 单击不安全 --> 证书无效

enter image description here

  1. 转到如下所示的详细信息选项卡,然后单击导出将证书导出到本地计算机。

enter image description here

  1. 证书导出后,打开它时您将能够看到以下消息。单击安装证书将其导入。

enter image description here

  1. 按照以下步骤将证书添加到受信任的根证书颁发机构,同时将其导入到本地计算机。

enter image description here

enter image description here

单击“下一步”,然后完成安装过程。成功导入后,打开证书时您将看到以下消息。

enter image description here

以隐身模式浏览

https://localhost:8081/_explorer/index.html
URL 或清除同一浏览器的缓存,您将不再看到不安全警告。

enter image description here


0
投票

我也遇到了同样的问题。我通过重试解决了这个问题,如下

  # These retries are needed since a downloaded file may be a JSON response.
  while true;
  do  
    curl -k --retry 20 --retry-delay 5 --retry-all-errors https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
    if grep 'END CERTIFICATE' ~/emulatorcert.crt > /dev/null
    then
      break
    fi  
    echo 'Retrying since the file is broken...'
    sleep 5
  done
© www.soinside.com 2019 - 2024. All rights reserved.