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](

目录
相关文章
|
26天前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:&lt;https://github.com/khellang/Scrutor&gt;
41 5
|
3月前
|
存储 开发框架 JSON
ASP.NET Core OData 9 正式发布
【10月更文挑战第8天】Microsoft 在 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9,此版本与 .NET 8 的 OData 库保持一致,改进了数据编码以符合 OData 规范,并放弃了对旧版 .NET Framework 的支持,仅支持 .NET 8 及更高版本。新版本引入了更快的 JSON 编写器 `System.Text.UTF8JsonWriter`,优化了内存使用和序列化速度。
101 0
|
2月前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
47 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
1月前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
28 3
|
10天前
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
25 0
|
2月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
3月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
140 1
|
3月前
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
47 1
|
3月前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
3月前
|
监控 安全 API
最完美的扩展Docker + .NET API:简化部署和扩展
最完美的扩展Docker + .NET API:简化部署和扩展
102 0

热门文章

最新文章