在.NET 6.0上使用Kestrel配置和自定义HTTPS

引用地址:在.NET 6.0上使用Kestrel配置和自定义HTTPS_kestrel 使用https_云策数据的博客-CSDN博客

在ASP.NET Core中,默认情况下HTTPS处于打开状态,这个不是问题,我们无需禁用它。因为如果你的服务是在防火墙后面,是属于后台服务,不对外网提供服务,启用HTTPS也是有意义的。

通常,在Windows上,启用HTTPS所需的证书是从Windows证书存储库加载的,在Linux或Mac上,则会从证书文件上加载证书,后者更加灵活,是我比较推荐的方式。

直接上代码

using System.Text.Encodings.Web;

using System.Text.Json;

using YC.Common.Core.Filter;

using YC.JsonSerialization;

using YC.UnifyResult;

using Newtonsoft.Json;

using Newtonsoft.Json.Serialization;

var builder = WebApplication.CreateBuilder(args).Inject();

builder.Host.UseSerilogDefault();

builder.Logging.AddJsonConsole(options =>

{

options.JsonWriterOptions = new JsonWriterOptions

{

Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping

};

});

builder.Services.AddControllersWithViews()

.AddMvcFilter<RequestActionFilter>()

.AddInjectWithUnifyResult<RESTfulResultProvider>()

.AddJsonOptions(options =>

{

options.JsonSerializerOptions.PropertyNamingPolicy = null;

})

.AddNewtonsoftJson(options =>

{

// 默认命名规则

options.SerializerSettings.ContractResolver = new DefaultContractResolver();

// 设置时区为 UTC

options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;

// 格式化json输出的日期格式

options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";

// 忽略空值

// options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;

// 忽略循环引用

options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

// 格式化json输出的日期格式为时间戳

options.SerializerSettings.Converters.Add(new NewtonsoftDateTimeJsonConverter());

});

var app = builder.Build();

app.Configuration.Get<WebHostBuilder>().ConfigureKestrel(options =>

{

// 长度最好不要设置 null

options.Limits.MaxRequestBodySize = 52428800;

});

app.Run();

AppSetting.json 设置

{

"AllowedHosts": "*",

// 配置扫描目录

"ConfigurationScanDirectories": "Configurations"

}

子目录设定

Kestrel.json 设定

{

"Kestrel": {

"Endpoints": {

"Http": {

"Url": "http://200.0.0.66:50001"

},

"HttpsInlineCertFile": {

"Url": "https://200.0.0.66:5000",

"Certificate": {

"Path": "I:\\source\\Net6\\yc-netcore-v3.4.1\\src\\Application\\YC.API.Entry\\all_wsb003_cn.pfx",

"Password": "Minke@2022"

}

}

}

}

}


版权声明:本文为CSDN博主「云策数据」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/bj_xuzhiqiang/article/details/126726816

相关推荐
xhtdj4 小时前
DuckDB Quack基于 HTTP的客户端 / 服务器协议面向多用户分析
服务器·网络协议·http
云中小生4 小时前
Scrutor:.NET 依赖注入自动化的优雅实现
c#·.net
Steadfast_GG4 小时前
详解HTTP中的URL
网络协议·http
李白你好4 小时前
Burp Suite 自动注入 HTTP Header 的插件
网络·网络协议·http
步步为营DotNet4 小时前
Semantic Kernel 在.NET AI 开发中的深度探索与实践
人工智能·.net
霸道流氓气质4 小时前
SSL Socket 通信与本地 Mock Server 实践指南
网络·网络协议·ssl
半亩码田4 小时前
【.NET新特性·第5篇】.NET 9 速览:云原生与性能之年
云原生·.net
宇砾5 小时前
HTTPS的工作流程
网络协议·http·https
.NET修仙日记5 小时前
.NET 领域驱动设计:用户角色更新如何从应用服务落地到领域实体(代码拆解)
c#·.net·领域驱动设计·微软技术·角色设计
酉鬼女又兒5 小时前
零基础入门计算机网络:集线器与交换机区别、以太网交换机自学习转发流程及生成树协议STP全解析
服务器·网络·网络协议·tcp/ip·计算机网络·考研·职场和发展