ASP.NET Core Kestrel部署HTTPS
【摘要】 ASP.NET Core Kestrel部署HTTPS1,在program.cs中CreateHostBuilder 替换成如下内容:public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseServ...
ASP.NET Core Kestrel部署HTTPS
1,在program.cs中CreateHostBuilder 替换成如下内容:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureServices((context, services) =>
{
// 这是在appsettings中配置后加载配置
// 当然也可以在startup中加载配置
services.Configure<KestrelServerOptions>(
context.Configuration.GetSection("Kestrel"));
})
.ConfigureWebHostDefaults(webBuilder =>
{
// 这是在代码中配置,而不是配置文件配置
//webBuilder.UseKestrel(option => {
// option.Listen(IPAddress.Loopback, 80);
// option.Listen(IPAddress.Loopback, 443,
// listenOptions =>
// {
// listenOptions.UseHttps("localhostcert.pfx", "localhost");
// });
//});.UseUrls("https://*:443")
webBuilder.UseStartup<Startup>();
});
public void ConfigureServices(IServiceCollection services)
{
services.Configure<KestrelServerOptions>(
Configuration.GetSection("Kestrel"));
}
上面两段代码描述的都是Kestrel服务的option从配置文件中读取
紧接着在startup中增加 app.UseHttpsRedirection(); app.UseHsts();//默认是开启的,如果是,就不用管它
2,在配置文件appsettings.json中增加,这是单独的配置节点 ,其中path,是pfx文件的位置,password是证书的密码,在阿里云申请的证书,下载iis版的就有这两个。
"Kestrel": {
"Limits": {
"MaxRequestBodySize": 9223372036854775807,
"MaxRequestBufferSize": 9223372036854775807,
"MaxRequestLineSize": 9223372036854775807
},
"Endpoints": {
"Https": {
"Url": "https://*:443",
"Certificate": {
"Path": "/xxxx.pfx",
"Password": "xxx"
}
}
}
}
这里的配置项可以参考微软的文档,基本上大多数需要代码显式指定的配置在appsettings.json中都是可以直接配置的
参考文档地址:[https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#endpoint-configuration](
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)