首页 > 解决方案 > 如何在 Docker 映像的 .NetCore 项目中启动 Kestrel

问题描述

我在 .NET core 2.1 中使用 SSL 证书创建了一个 Web 应用程序。部署到我们的测试服务器时运行良好。现在我正在尝试使用 SSL 证书创建 Docker 映像。

这就是我创建图像的方式:

Windows cmd 命令

这就是我设置 yml 的方式

docker-compose.override.prod.yml

我可以创建 docker 映像并对其进行处理,但我收到以下错误:Microsoft.AspNetCore.Server.Kestrel[0] 无法启动 Kestrel

我已验证 SSL 证书已创建,并且该项目具有指向该证书的链接。

证书链接

标签: dockerssl.net-core

解决方案


您应该使用 SSL 支持启动 Krestel

WebHost.CreateDefaultBuilder(args)
.UseKestrel(options =>
{
    options.Listen(IPAddress.Loopback, 5000);  // http:localhost:5000
    options.Listen(IPAddress.Any, 80);         // http:*:80
    options.Listen(IPAddress.Loopback, 443, listenOptions =>
    {
        listenOptions.UseHttps("certificate.pfx", "password");
    });
})
.UseStartup<Startup>()
.Build();

必须通过 Dockerfile 中的相应命令将 PFX 文件复制到 docker 映像中。


推荐阅读