最新要闻
- 男子1天吃10顿暴瘦110斤:确诊为甲亢!医生科普
- 每日快看:董宇辉自曝曾抗拒卖货写检讨:一度撑不下去想放弃
- 每日信息:银河麒麟桌面系统升级V10 SP1 2303:固若金汤 真心好用!
- 当前视点!巴萨唯一爆点要走,5000万欧元违约金,让签约不要太容易
- 全球速讯:海康威视推双盘位NAS:1199元 最大40TB容量
- 因“挖呀挖”爆火美女老师身陷6大传闻:职业网红?一场直播打赏200多万?-天天要闻
- 三国志战略版象兵战法怎么样 三国志战略版象兵战法搭配
- 《塞尔达传说:王国之泪》偷跑后:任天堂大规模“清理”Switch相关软件
- 腾势汽车五一出行报告:座椅零重力成最爱用智能功能 被使用84万次-世界最资讯
- 世界新动态:葱花饼怎样做好吃?
- “秀色”可餐鲜花入馔有讲究 谨防过敏或中毒_每日快播
- 环球速看:治堵神器!比亚迪云巴在湖南大王山即将运营:串联十余处景点
- 广东强对流天气上线 多地暴雨大风:汕尾3小时倒水111.1毫米|世界微动态
- 对标华为昆仑!荣耀将推出巨犀玻璃面板:Magic4已提前用上
- 创维汽车黄宏生:盈亏平衡点是卖10万辆 明年实现
- 收购动视暴雪还有机会!微软聘请顶级反垄断律师对阵CMA 全球今头条
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
.NET 6学习笔记(8)生成自签证书
上一篇我们通过导出IIS Express的自签证书,供ASP.NET Core程序启用HTTPS。本篇我们讨论如何生成自签证书。自签证书的生成,有多种方式。比如OpenSSL或PowerShell都可以通过命令生成证书。对于.NET程序,也有System.Security.Cryptography.X509Certificates命名空间下,对应的C#类来实现。首先我们通过类X500DistinguishedName来填写证书的Subject,即使用者信息。Subject中的信息用以识别证书使用者,对自签证书来说可能不太重要,常见的字段有:
比如该证书由中国的巨硬软件研发中心使用,Subject可能就是下面的写法。
(资料图片)
string subject = $"C=CN, O=Hugehardsoft, OU=R&D Hub, CN={Environment.MachineName}";var rsa = RSA.Create();var x500DistinguishedName = new X500DistinguishedName(subject);var req = new CertificateRequest(x500DistinguishedName, rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
SSL证书一般通过RSA算法来生成公钥和私钥。在创建CertificateRequest实例之后,我们需要添加DnsName,可以认为证书只对这里添加到DnsName的地址才有效。
SubjectAlternativeNameBuilder sanBuilder = new SubjectAlternativeNameBuilder();sanBuilder.AddDnsName("localhost");sanBuilder.AddDnsName(Environment.MachineName);req.CertificateExtensions.Add(sanBuilder.Build());
比如上述代码,仅添加了localhost和机器名作为DnsName,那么我们在用IP地址访问时。证书将显示为不可信,网站不安全。在完成DnsName的添加后,我们就可以生成自签证书了。通过CreateSelfSigned方法,创建一个10年有效期的证书,并将证书保存为c:\temp\SelfSignedSample.pfx文件,同时设置证书的导出密码为123456。我们通过Kestrel配置证书时将会用到该密码。
var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(10));File.WriteAllBytes("C:\\temp\\SelfSignedSample.pfx", cert.Export(X509ContentType.Pfx, "123456"));
参考上一篇《.NET 6学习笔记(7)——ASP.NET Core通过配置文件启用HTTPS》,我们创建一个ASP.NET Core的Web APP。
然后在appsettings.production.json里添加Kestrel的配置项:
{ "Kestrel": { "Endpoints": { "Https": { "Url": "https://localhost:8888", "Certificate": { "Path": "c:\\temp\\SelfSignedSample.pfx", "Password": "123456" } } } }}
我们在Properties文件夹下的launchSettings.json中,修改对应Kestrel托管的配置项,将"ASPNETCORE_ENVIRONMENT"修改为"Production"。
"profiles": { "WebAppWithSelfSignedCert": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:7122;http://localhost:5122", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Production" } },
此时我们用Kestrel托管(不是IIS Express)上述ASP.NET Core应用,并通过https://localhost:8888去访问该网站。会发现提示不是专用连接。这是因为我们没有信任该自签证书。
就和12306网站的证书一样的操作,需要安装该自签证书。实际用户可以通过浏览器导出证书。然后双击进行安装。
需要注意的是,我们应该将证书安装到“受信任的根证书颁发机构”。
完成上述操作之后。清理浏览器缓存并关闭浏览器,重新打开后我们再通过localhost:8888去访问网站,就会看到显示为可信任的https连接了。但是如果我们用本机的IP去访问,仍然会使不受信任的状态。这是因为之前提到的没有把IP地址加入到证书的DnsName中。
本篇我们介绍了如何通过.NET中命名空间System.Security.Cryptography.X509Certificates下的Class生成自签证书。
水平所限,欢迎指正。
GitHub:
manupstairs/CreateSelfSignedCert: Show how to create self signed certificate using C#. (github.com)
以下链接,是MS Learn上Windows开发的入门课程,单个课程三十分钟到60分钟不等,想要补充基础知识的同学点这里:
开始使用 Visual Studio 开发 Windows 10 应用
开发 Windows 10 应用程序
编写首个 Windows 10 应用
创建 Windows 10 应用的用户界面 (UI)
增强 Windows 10 应用的用户界面
在 Windows 10 应用中实现数据绑定
关键词:
.NET 6学习笔记(8)生成自签证书
男子1天吃10顿暴瘦110斤:确诊为甲亢!医生科普
每日快看:董宇辉自曝曾抗拒卖货写检讨:一度撑不下去想放弃
每日信息:银河麒麟桌面系统升级V10 SP1 2303:固若金汤 真心好用!
当前视点!巴萨唯一爆点要走,5000万欧元违约金,让签约不要太容易
全球速讯:海康威视推双盘位NAS:1199元 最大40TB容量
因“挖呀挖”爆火美女老师身陷6大传闻:职业网红?一场直播打赏200多万?-天天要闻
三国志战略版象兵战法怎么样 三国志战略版象兵战法搭配
挂载NTFS分区,离线安装NTFS-3G(Linux挂载NTFS格式磁盘的方法)
《塞尔达传说:王国之泪》偷跑后:任天堂大规模“清理”Switch相关软件
腾势汽车五一出行报告:座椅零重力成最爱用智能功能 被使用84万次-世界最资讯
世界新动态:葱花饼怎样做好吃?
“秀色”可餐鲜花入馔有讲究 谨防过敏或中毒_每日快播
环球速看:治堵神器!比亚迪云巴在湖南大王山即将运营:串联十余处景点
广东强对流天气上线 多地暴雨大风:汕尾3小时倒水111.1毫米|世界微动态
对标华为昆仑!荣耀将推出巨犀玻璃面板:Magic4已提前用上
创维汽车黄宏生:盈亏平衡点是卖10万辆 明年实现
收购动视暴雪还有机会!微软聘请顶级反垄断律师对阵CMA 全球今头条
全球今头条!称比亚迪仰望U8原地掉头是欺骗大众 38万粉丝UP主道歉
1163 Dijkstra Sequence + 层序遍历 + 链式前向星_环球热点
马普龙霸王龙谁厉害_马普龙vs霸王龙 今日播报
《塞尔达传说:王国之泪》发售前惨遭偷跑!Epic:买不起可以玩《原神》
【天天时快讯】超越《复联》!《银河护卫队3》创漫威影史最高分
桥本环奈的影视剧_桥本环奈影视作品 焦点热闻
全球最新:女子深夜加班回家吃榴莲被丈夫指责 网友质疑摆拍:头顶长了摄像头
巴菲特看好微软:在收购动视暴雪上已经十分出色|全球信息
动态:又一新造车濒临倒闭:仅交付6台车 和富士康有关
全球今亮点!又一新势力车企申请破产 经销商曾集体维权称被坑几百万
近日择机发射!天舟六号船箭组合体转运至发射区_世界播资讯
这几类蔬菜或自带“毒素”,吃前必须焯水,有两种正当季-今日报
每日动态!【金融街发布】国家外汇管理局:4月末我国外储规模为32048亿美元 环比上升0.66%
【环球新要闻】国王杯冠军榜:巴萨31冠居首,皇马20冠排第三
世界动态:上海官方公布4月超速排行榜:第一名真能追高铁了 一秒67米
回忆杀!“品如的苹果手机怎么是翻盖的”引热议 网友又来考古
Linux驱动开发笔记(一):helloworld驱动源码编写、makefile编写以及驱动编译基本流程 当前速讯
视讯!OpenAI CLIP 关键点 - 连接图像和文字
宁德时代回应原材料价格下跌:不存在大幅减值风险
把苹果股票卖了!巴菲特:两年前犯过错 很愚蠢|世界快看
理想汽车:几万块营销预算李想亲自批 但安全方面预算不需要
关于Kubernetes-v1.23.6-初始化时报错[kubelet-check] It seems like the kubelet isn't runni
编程题库 - 基本运算 - 整数运算求两个整数相加之和
零营收药企密集IPO 估值成关注点
天天看点:iPhone 15 Pro Max机模上手:1.57mm超窄边框、Type-C接口
对于女大学生 一晚上最少多少钱
一夜爆红 湖北黄老师直播唱挖呀挖打赏不断 律师:或涉嫌侵权
每日关注!夏天必备 润本蚊香液3瓶+1器大促:到手14.9元
254TOPS算力!比亚迪新一代王朝、海洋系列要用NVIDIA Drive Orin芯片-天天快报
前沿热点:Win11精简版系统成功安装在4GB显存中:运行速度飞快!
微头条丨炉慈高速全线首座隧道双线提前贯通
【环球时快讯】侵害用户权益!工信部通报56款App:羊了个羊上榜
焦点快报!巴菲特股东大会!巴菲特:我们的火车还停留在19世纪末水平
学系统集成项目管理工程师(中项)系列18b_进度管理(下)-当前动态
世界快报:关于俞敏洪建议24节气都放假及俞敏洪建议24节气都放假详情
2、etcd单机部署和集群部署
网友逛鱼店惊喜偶遇鲨鱼产子过程:第一次见 很神奇
深圳一公司发布年薪50万岗位:优先录用李一桐粉丝
7人吃自助炫300多个螃蟹 医生:过量食用螃蟹或引发多种疾病|世界时讯
苹果别对iPhone 15 USB-C限速!不然欧盟不答应
加快摆脱中国供应链?库克:苹果接下来就靠印度了
什么是成本性态 什么是成本|世界热讯
爱成都迎大运宣传稿怎么画(爱成都迎大运宣传句)
咖啡色地板配什么颜色家具_咖啡色配什么颜色好看
网站被攻击了!!! 速递
老人推倒摩托车案执行款1.6万已到账 车主10个月维权结束:老人违法不该被宽恕
天天百事通!民呼我应|东门一市政路被“霸占”,官方回应来了
【环球新要闻】月嫂拍嗝时打盹致婴儿头顶骨骨折 平台:愿退还未完成的服务费
“挖呀挖呀挖”童谣为何火爆全网?专家解释原因_天天速看
全球今日报丨冷冻小龙虾怎么加热 冷冻小龙虾怎么加热才好吃
美股银行股周五为何大涨?没有空头想持仓过周末
天天速讯:中国特供 NVIDIA缩水版A800显卡遭哄抢:10万元也难买到
“投资界的春晚”要来了:巴菲特股东大会五大看点_世界微动态
老黄良心了 5000块的4060游戏本值得买吗?结论来了
复数的基本知识
最新快讯!关于学生五一前请假遭拒强行离校被处分及学生五一前请假遭拒强行离校被处分详情
广东小区业主私拆承重墙 多户搬离墙体开裂到14楼:网友吐槽是谋杀 希望严惩
5月价格继续涨 LCD面板不再亏本卖:75寸电视不到3000元
快播:“土味”出圈!济宁“90后”唢呐女博士背后的故事
最新消息:SQL 解析在 CloudQuery 中的应用
小红书布局AI大模型:上线AI绘画应用
旅客问路被工作人员怼回去多读书 车站回应:严肃处理|环球微速讯
天天视讯!航拍安徽岳西茭白田:满眼葱绿孕育生机
世界热点评!C#高级编程--反射与特性
88年后入土为安 云南禄劝隆重安葬21具红军烈士遗骸
新消息丨厂商为何要封杀32位APP?真实原因揭开
比商超便宜一半多!伊利巧乐兹大促:券后每支2.4元起
3090 Ti能抵7200元 iGame以旧换新7日开启:RTX 40显卡这下真的便宜了 天天视讯
焦点快播:1049元 创维推出新款23.8电竞显示器:165Hz Fast IPS屏
每日聚焦:村里又来年轻人 发展动力更强劲
推荐6个我经常逛的“小网站”,嘿嘿嘿!!!
【全球播资讯】用Radare2模拟shellcode运行
全球时讯:数仓建模规范--非常全
Vue2的生命周期 每日速递
美国制裁升级,推动国产化网卡发展刻不容缓
重磅!“听音写稿”成真 讯飞听见重大升级:一段录音 一键成稿 今热点
热资讯!菜鸟驿站爆改大征集:夜间自助取件 这5个城市方便了
国产AI逆袭!一图看懂讯飞星火:文本生成、知识问答、数学三大能力已超越ChatGPT
理想汽车五一出行报告出炉:行程1.44亿公里、一半都在烧油
世界聚焦:山东黄金董事长李航:预计金价仍有进一步上涨空间
新消息丨前端开发环境搭建踩坑笔记——npm install node-sass安装失败的解决方案
C/C++代码内捕获异常发生时的调用栈