当前位置: 首页 > news >正文

.NET 8 kestrel 配置PEM,实现内网https

一、生成证书

mkcert 是一个简单的工具,用于制作本地信任的开发证书。它不需要配置。

mkcert官方仓库地址:GitHub - FiloSottile/mkcert: A simple zero-config tool to make locally trusted development certificates with any names you'd like.

简化我们在本地搭建 https 环境的复杂性,无需操作繁杂的 openssl 实现自签证书了,这个工具就可以帮助我们自签证书,在本机使用还会自动信任 CA,非常方便。

下载安装

下载地址:Releases · FiloSottile/mkcert · GitHub

 

安装mkcert。将CA证书加入本地可信CA,使用此命令,就能帮助我们将mkcert使用的根证书加入了本地可信CA中,以后由该CA签发的证书在本地都是可信的。下载后到下载目录中安装: 

mkcert-v1.4.4-windows-amd64.exe -install

 

 安装成功成功。提示创建一个新的本地CA,本地CA现在已安装在系统信任存储中。

查看根证书位置

如果你想查看根证书位置,可以输入命令:

 

生成自签证书

直接跟多个要签发的域名或 ip 就行了,比如签发一个仅本机访问的证书(可以通过127.0.0.1localhost,以及 ipv6 地址::1访问):

mkcert-v1.4.4-windows-amd64.exe localhost 127.0.0.1 ::1 192.168.2.25

 

在mkcert软件同目录下,生成了自签证书。如图所示: 

 

二、NET 8 kestrel 使用证书

证书复制到wwwoort下

例如wwwoort/pem下

Program.cs的编辑代码

public static IHostBuilder CreateWebHostBuilder(string[] args)
{//读取证书var rootpath = Directory.GetCurrentDirectory();var certPem = File.ReadAllText(rootpath + "/wwwroot/pem/localhost+3.pem");var keyPem = File.ReadAllText(rootpath + "/wwwroot/pem/localhost+3-key.pem");var x509 = X509Certificate2.CreateFromPem(certPem, keyPem);returnHost.CreateDefaultBuilder(args).ConfigureAppConfiguration((hostingContext, config) =>{config.AddInMemoryCollection(new Dictionary<string, string> { { "HostRoot", hostingContext.HostingEnvironment.ContentRootPath } });}).ConfigureLogging((hostingContext, logging) =>{logging.ClearProviders();logging.AddConsole();logging.AddWTMLogger();}).ConfigureWebHostDefaults(webBuilder =>{webBuilder.ConfigureKestrel(serverOptions =>{//https 5001serverOptions.ListenAnyIP(5001, listenOptions =>{listenOptions.UseHttps(x509);});//http 5000   serverOptions.ListenAnyIP(5000);});webBuilder.UseStartup<Startup>();});
}

完成https自签名证书配置。

注意:PEM证书在Windows环境下,无论是开发还是部署,均无法正常使用。必须在liunx环境下使用。Windows环境下的证书格式为pfx。

http://www.dtcms.com/a/192041.html

相关文章:

  • 前端学习:align-items 和 justify-content 概念和区别
  • JAVA:ResponseBodyEmitter 实现异步流式推送的技术指南
  • 【抽丝剥茧知识讲解】引入mybtis-plus后,mapper实现方式
  • (面试)Handler消息处理机制原理
  • Linux进程通讯和原子性
  • Ubuntu shell指定conda的python环境启动脚本
  • python使用matplotlib无法显示中文字体报错
  • Spring Cloud探索之旅:从零搭建微服务雏形 (Eureka, LoadBalancer 与 OpenFeign实战)
  • 【鸿蒙开发】性能优化
  • 【hadoop】Flume日志采集系统的安装部署
  • ollama 升级换源
  • 基于OpenCV的人脸微笑检测实现
  • 除了GC哪些地方有用到安全点
  • 本地部署 私有云网盘 Nextcloud 并实现外部访问
  • 智慧化系统安全分析报告
  • [训练和优化] 3. 模型优化
  • 亚马逊,temu测评采购低成本养号策略:如何用一台设备安全批量管理买家账号
  • 16-看门狗和RTC
  • 西门子 Teamcenter13 Eclipse RCP 开发 1 工具栏
  • PyTorch循环神经网络(Pytotch)
  • 基于Rust语言的Rocket框架和Sqlx库开发WebAPi项目记录(一)
  • 青少年编程与数学 02-019 Rust 编程基础 14课题、并发编程
  • 系统集成项目管理工程师学习笔记
  • 深度学习框架对比---Pytorch和TensorFlow
  • C++23 新增的查找算法详解:ranges::find_last 系列函数
  • AWS CloudHSM:金融级密钥安全管理实战,如何通过FIPS 140-2认证守护数据生命线?
  • aws 实践创建policy + Role
  • W1R3S: 1.0.1靶场
  • 从卡顿到丝滑:JavaScript性能优化实战秘籍
  • (C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)