C# 如何在.Net Core 2.1中为登台/生产配置ssl

C# 如何在.Net Core 2.1中为登台/生产配置ssl,c#,asp.net-core-2.1,C#,Asp.net Core 2.1,我正在使用.NETCore2.1构建一个MVCWeb应用程序。在.net core上ListenOptions.UseHttps下的文档中,它声明将使用默认证书()配置Kestrel Kestrel在哪里查找此默认证书?我如何在登台时替换它(我想使用我们的演示站点证书之一)?对于生产(我又有了不同的证书) My Program.cs内容现在看起来像: public class Program { public static void Main(string[] args) {

我正在使用.NETCore2.1构建一个MVCWeb应用程序。在.net core上ListenOptions.UseHttps下的文档中,它声明将使用默认证书()配置Kestrel

Kestrel在哪里查找此默认证书?我如何在登台时替换它(我想使用我们的演示站点证书之一)?对于生产(我又有了不同的证书)

My Program.cs内容现在看起来像:

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebHost.CreateDefaultBuilder(args); //This sets up Kestrel and adds appsettings.json to the configuration
        builder.UseStartup<Startup>();
        builder.ConfigureAppConfiguration((context, configurationBuilder) =>
        {
            var env = context.HostingEnvironment;
            configurationBuilder.SetBasePath(env.ContentRootPath);
        });

        var host = builder.Build();
        host.Run();
    }
}

应用程序在本地主机上使用https运行良好。我正在寻找一种通过配置(例如appSettings.{env}.json?)而不是通过自定义方法来解决此问题的方法,例如

通过修改appsettings.DockerDevelopment.json文件使其正常工作,如下所示:

{
  "Kestrel": {
    "EndPoints": {
      "HttpsDefaultCert": {
        "Url": "https://*:443"
      },
      "Http": {
        "Url": "http://*:80"
      }
    },
    "Certificates": {
      "Default": {
        "Path": "certifcate.pfx",
        "Password": "*********"
      }
    }
  }
}

Kestrel现在可以在Docker容器和临时服务器上使用https运行我的应用程序

我们在nginx后面使用kestrel,让nginx终止ssl连接。但我认为下面的文章描述了设置是的,这也是我在问题最后提到的设置。然而,我希望能够配置红隼本身。你的方法是推荐用于此类应用的方法吗?我认为这有点变化,但很长一段时间以来kestrel并不打算直接为外部服务。文档仍然关注nginx/apache/…后面的主机,所以我认为这仍然是最常见的设置。我们正在(与docker一起)使用什么为我们的所有asp.net核心应用程序提供了获取letsencrypt证书的简便方法。这篇文章可能会对您有所帮助?红隼仍然不建议直接使用。它完成了任务,但它不是一个真正成熟的web服务器,并且缺少许多您可能需要的功能和控件。
{
  "Kestrel": {
    "EndPoints": {
      "HttpsDefaultCert": {
        "Url": "https://*:443"
      },
      "Http": {
        "Url": "http://*:80"
      }
    },
    "Certificates": {
      "Default": {
        "Path": "certifcate.pfx",
        "Password": "*********"
      }
    }
  }
}