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

.NET Core Docker容器API报错:提供的密码无法读取证书数据

解决方案

1 修复路径大小写匹配问题

Linux容器文件系统大小写敏感,首先确认机密配置中的证书路径和容器内实际文件名完全一致:
如果容器内证书文件名为DocumentUploader.pfx,机密配置的Path字段必须和拼写完全匹配,不能写为documentuploader.pfx。

2 新增证书加载存储标记

Windows系统导出的PFX证书在Linux环境加载时,默认密钥存储规则不兼容,需要添加KeyStorageFlags配置,修改API项目的机密配置如下:

"Kestrel": {
  "Certificates": {
    "Default": {
      "Path": "/root/.aspnet/https/DocumentUploader.pfx",
      "Password": "你的实际证书密码",
      "KeyStorageFlags": "EphemeralKeySet"
    }
  }
}

EphemeralKeySet标记会将证书密钥临时加载到内存,跳过Linux系统不支持的持久化密钥存储逻辑,避免解密错误。

3 调整容器监听地址

你当前配置的ASPNETCORE_URLS=https://localhost;http://localhost仅允许容器本地访问服务,修改docker compose中两个服务的环境变量为:

- ASPNETCORE_URLS=https://+;http://+

适配容器外部请求、同网桥其他服务的访问需求。

4 可选:重新生成兼容证书

上述步骤无效时,清理旧证书后生成专用开发证书:

  1. 删除本地%APPDATA%\ASP.NET\Https目录下的DocumentUploader.pfx文件
  2. 执行命令生成新证书:
dotnet dev-certs https -ep %APPDATA%\ASP.NET\Https\DocumentUploader.pfx -p 你的证书密码
dotnet dev-certs https --trust

5 服务间通信优化

两个服务同属doc_manager网桥,内部通信不需要走外网端口、不需要用localhost地址,Document Manager调用Uploader API时直接使用服务名https://documentuploader即可,不会出现证书域名不匹配问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:45:01