【问题标题】:Asp.Net Core 2.2 Docker HTTPS issueAsp.Net Core 2.2 Docker HTTPS 问题
【发布时间】:2019-10-30 10:19:33
【问题描述】:

当我想在 docker 下运行我的应用程序 (Asp.Net Core 2.2) 时遇到问题。

首先,我使用以下方法创建了一个自签名证书:

dotnet dev-certs https -v -ep d:\temp\cert-aspnetcore.pfx -p ufo

之后,我将 cert-aspnetcore.pfx 复制到 C:\Users\MyUsername.aspnet\https 位置

这是我的 docker-compose.yml

version: '3.4'

services:
  testapi.api:
    image: ${DOCKER_REGISTRY-}testapi
    build:
      context: .
      dockerfile: TestApi.Api/Dockerfile

和 docker-compose.override.yml

> version: '3.4'
> 
> services:   testapi.api:
>     environment:
>       - ASPNETCORE_ENVIRONMENT=Development
>       - ASPNETCORE_URLS=https://+:443;http://+:80
>       - ASPNETCORE_HTTPS_PORT=44395
>       - ASPNETCORE_Kestrel__Certificates__Default__Password=ufo
>       - ASPNETCORE_Kestrel__Certificates__Default__Path=/root/.aspnet/https/cert-aspnetcore.pfx
>     ports:
>       - "9000:80"
>       - "44395:443"
>     volumes:
>       - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
>       - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro

但是当我尝试运行 docker-compose up --build 我得到:

crit: Microsoft.AspNetCore.Server.Kestrel[0] 无法启动 Kestrel。 System.InvalidOperationException:无法配置 HTTPS 端点。 未指定服务器证书,默认开发者 找不到证书。

如果您需要任何信息,请告诉我。非常感谢!

【问题讨论】:

  • 您是否尝试过使用类似 tail -f /dev/null 的内容覆盖容器的默认入口点/命令,以防止容器被破坏,然后在容器上运行 shell 以查看是否文件夹结构是否正确?

标签: .net docker asp.net-core docker-compose


【解决方案1】:

我认为,您没有接受创建的证书。

您可以尝试在 cmd 或 powershell 上运行此代码行吗?

dotnet dev-certs https --trust

https://docs.microsoft.com/en-us/aspnet/core/security/docker-https?view=aspnetcore-3.0

【讨论】:

    猜你喜欢
    • 2020-04-22
    • 2019-06-19
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 2019-06-28
    • 2019-07-28
    • 2019-07-21
    相关资源
    最近更新 更多