You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cosmos DB Emulator Windows容器无法导出证书求助

Cosmos DB Windows容器模拟器证书获取问题解决方案

一、操作问题说明

  • 官方文档里的/_explorer/emulator.pem路径是针对本地安装的模拟器,Windows容器内的模拟器并未暴露这个端点,因此访问会返回404,这是正常差异,你的操作核心问题是误用了本地模拟器的证书导出路径。
  • 完全可以无需本地安装Cosmos DB模拟器,仅通过容器正常使用,只要正确获取并配置容器内的证书即可。

二、从容器获取证书的替代方法

以下两种方式可可靠获取证书,解决TLS验证警告问题:

方法1:通过容器命令导出并复制证书到主机

  1. 先查看容器名称或ID:
    docker ps
    
  2. 执行容器内PowerShell命令导出证书,再复制到主机指定目录(示例为C:\temp):
    docker exec <容器名称/ID> powershell -Command "Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Subject -eq 'CN=localhost' } | Export-Certificate -FilePath C:\temp\emulatorcert.crt -Type CERT"
    docker cp <容器名称/ID>:C:\temp\emulatorcert.crt C:\temp\emulatorcert.crt
    
  3. 将证书导入本地受信任根证书颁发机构存储:
    • 双击证书文件,点击「安装证书」
    • 选择「本地计算机」,点击「下一步」
    • 选择「将所有证书放入下列存储」,点击「浏览」后选择「受信任的根证书颁发机构」
    • 完成导入流程

方法2:直接复制容器内默认证书文件

Windows容器中Cosmos DB模拟器证书默认路径为C:\Program Files\Azure Cosmos DB Emulator\CosmosDBEmulatorCert.crt,直接复制到主机:

docker cp <容器名称/ID>:"C:\Program Files\Azure Cosmos DB Emulator\CosmosDBEmulatorCert.crt" C:\temp\emulatorcert.crt

后续同样按照方法1的步骤导入到受信任根存储即可。

.NET应用配置示例

导入证书后,.NET应用可直接使用标准连接字符串连接,无需禁用TLS验证:

string connectionString = "AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
CosmosClient client = new CosmosClient(connectionString);

内容的提问来源于stack exchange,提问作者Phil Mar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:03:14