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

VS 2022搭配Docker Desktop时SSL证书配置报错求助

问题:VS 2022 + Docker Desktop SSL 配置异常

已执行操作

  • 生成并信任HTTPS开发证书:
    dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p myPass123
    dotnet dev-certs https --trust
    
  • 执行结果:

    已请求信任HTTPS开发证书。如果证书之前未被信任,将显示确认提示。点击提示中的“是”以信任证书。

docker-compose.override.yml SSL相关配置

ocelotapigw:
    container_name: ocelotapigw
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=mypass123
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
      - "TenantRemoteStore:Url=https://tenantstore.grpc"
    ports:
      - "9001:80"
      - "9002:443"
    volumes:
      - ~/.aspnet/https:/https:ro

stripedotnet.api:
    container_name: stripedotnet.api
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=mypass123
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
      - "EventBus:HostAddress=amqp://guest:guest@rabbitmq:5672"
      - "TenantRemoteStore:Url=https://tenantstore.grpc"
    depends_on:
      - rabbitmq
      - tenantstore.grpc
    ports:
      - "8001:80"
      - "8002:443"
    volumes:
      - ~/.aspnet/https:/https:ro

razor.web:
    container_name: razor.web
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=mypass123
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
      - "HttpClient:APIGatewayUrl=https://ocelotapigw"
      - "ElasticConfiguration:Uri=http://elasticsearch:9200"
      - "SecureTokenService:IdentityUrl=https://identity.api/DaedalSoftSports"
      - "SecureTokenService:CallBackUrl=https://razor.web/"
    depends_on:
      - ocelotapigw
      - identity.api
    ports:
      - "10008:80"
      - "10009:443"
    volumes:
      - ~/.aspnet/https:/https:ro

错误现象

VS 2022运行docker-compose时停止执行,错误截图:
错误截图

排查与修复步骤

  1. 修正证书密码大小写
    生成证书时使用的密码是myPass123,但docker配置中写的是mypass123(大小写不一致),这会导致容器无法读取证书。将所有容器环境变量中的ASPNETCORE_Kestrel__Certificates__Default__Password值统一改为myPass123。

  2. 验证证书文件与映射权限

    • 确认本地%USERPROFILE%\.aspnet\https\aspnetapp.pfx文件存在
    • 打开Docker Desktop设置→Resources→File Sharing,确保当前用户目录已勾选开启文件共享
    • 若使用WSL2后端,可尝试将卷映射路径改为WSL绝对路径,比如/c/Users/你的用户名/.aspnet/https:/https:ro
  3. 清理并重新生成证书
    以管理员身份打开命令提示符,执行以下命令重置证书:

    dotnet dev-certs https --clean
    dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p myPass123
    dotnet dev-certs https --trust
    

    弹出信任提示时务必点击“是”完成证书信任操作。

  4. 重置VS与项目缓存

    • 删除项目根目录下的.vs、bin、obj文件夹
    • 重启VS 2022,重新生成解决方案后再运行docker-compose
  5. 检查Docker服务状态

    • 重启Docker Desktop,确保服务正常运行
    • 若当前后端(WSL2/Hyper-V)存在异常,可切换后端后重试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:11:47