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