tnblog
首页
视频
资源
登录

.Net6 设置信任自签证书(浏览器可信任)

9696人阅读 2022/8/3 16:44 总访问:3467353 评论:0 收藏:0 手机
分类: .net后台框架

.netcore

.Net6 设置信任自签证书(浏览器可信任)

先决条件


确保本地windows上拥有openssl,没有的自己去:http://slproweb.com/products/Win32OpenSSL.html 下载。

开始


先到指定的证书目录下,创建一个http.ext文件,并填写如下内容。

  1. keyUsage = nonRepudiation, digitalSignature, keyEncipherment
  2. extendedKeyUsage = serverAuth, clientAuth
  3. subjectAltName=@SubjectAlternativeName
  4. [ SubjectAlternativeName ]
  5. DNS.1=www.samples.com


在该目录下打开一个cmd,创建www.samples.com域名的证书。

  1. openssl
  2. genrsa -out test1.key 2048
  3. req -new -key test1.key -out test1.csr
  4. x509 -req -days 365 -in test1.csr -signkey test1.key -out test1.cer -extfile http.ext
  5. x509 -inform PEM -in test1.cer -out test1.crt
  6. pkcs12 -export -out test1.pfx -inkey test1.key -in test1.cer
  7. # 查看创建情况
  8. x509 -in test1.cer -text -noout


然后双击pfxcer文件进行安装。

创建API项目


首先我们在appsettings.json中创建我们证书的路径、密码与端口变量。

  1. {
  2. "Logging": {
  3. "LogLevel": {
  4. "Default": "Information",
  5. "Microsoft.AspNetCore": "Warning"
  6. }
  7. },
  8. "CertName": "D:\\Learning\\myhttps\\test1.pfx",
  9. "CertPwd": "123456",
  10. "ServerPort": 7055,
  11. "AllowedHosts": "*"
  12. }


接着我们在Program.cs中设置使用该证书。

  1. using Microsoft.Extensions.DependencyInjection;
  2. using System.Security.Cryptography.X509Certificates;
  3. var builder = WebApplication.CreateBuilder(args)
  4. ;
  5. builder.WebHost.UseKestrel(options =>
  6. {
  7. var port = builder.Configuration.GetValue<int>("ServerPort");
  8. options.ListenAnyIP(port, config =>
  9. {
  10. var certPath = builder.Configuration.GetValue<string>("CertName");
  11. var certPwd = builder.Configuration.GetValue<string>("CertPwd");
  12. var x509ca = new X509Certificate2(certPath, certPwd);
  13. config.UseHttps(x509ca);
  14. });
  15. });
  16. builder.Services.AddControllers();
  17. builder.Services.AddEndpointsApiExplorer();
  18. builder.Services.AddSwaggerGen();
  19. var app = builder.Build();
  20. if (app.Environment.IsDevelopment())
  21. {
  22. app.UseSwagger();
  23. app.UseSwaggerUI();
  24. }
  25. app.UseHttpsRedirection();
  26. app.UseAuthorization();
  27. app.MapControllers();
  28. app.Run();


然后我们设置本地hosts文件,它的位置在C:\Windows\System32\drivers\etc\hosts。将请求域名指向本地,添加下面这一行。

  1. 127.0.0.1 www.samples.com

测试运行


首先我们启动项目在浏览器中访问我们的Swagger。
我本地地址是:https://www.samples.com:7055/swagger


发现它并不认可。
所以我们还需要安装证书。
点击浏览器设置。


然后搜索我们的证书(certificate),并点击。


Intermediate Certification AuthoritiesTrusted Root Certification Authorities安装好我们的www.samples.com证书。
两个都装。


然后关闭,并重启浏览器进行访问就没什么问题了。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

.net6 Ocelot 与 Kubernetes

.Net6 Ocelot 与 Kubernetes[TOC] 前言这玩意太坑人了。浪费了我一天的时间。先看我们想实现的效果流程: 首先我们请求sv...

.net core发布出来swagger无法访问。docker 发布.net6 webapi swagger访问不到

因为代码里边设置swagger的代码是: if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.Use...

.net6 指定时区

.Net6 指定时区[TOC] 最近相当忙!忙着学这学那的,各种考试。以及项目上也有很多改动。还有这恶心的时间问题(特别注意当...

.net6 AsyncEx 异步锁

.Net6 AsyncEx[TOC] 简单来讲就是可以通过异步方式实现锁。安装&lt;PackageReference Include=&quot;Nito.AsyncEx&quot; V...

Kubernetes .net6 集群管理

Kubernetes .Net6 集群管理(一)[TOC] 对于Kubernetes集群的管理,.net提供了KubernetesClient库,可以对k8s集群通过简单...

Kubernetes .net6 Webhook

Kubernetes .Net6 Webhook[TOC] 本文主要是学习陈计节大佬讲的 使用 .NET Core 开发 Kubernetes 基础组件记录的笔记。 Ad...

Kubernetes .net6 CRD

Kubernetes .Net6 CRD[TOC] CRD介绍简单来说就是自定义资源,像Pod、Service、Deployment一样。创建自定义资源的资源类型...

linux批量执行命令脚本。linux脚本执行docker镜像打包运行.net6项目等

linux批量执行命令脚本1:创建一个.sh后缀的文件vi run.sh 2:在文件开头添加内容#!/bin/bash 3:在文件里边输入想要执行...

docker发布.net6项目。制作发布的批量脚本一键发布脚本

docker 发布.net core项目可以参考:https://www.tnblog.net/aojiancc2/article/details/5030 docker发布.net6项目简单的d...

.net6 连接mysql报错Unable to connect to any of the specified MySQL hosts.

.net5/6 连接mysql报错Unable to connect to any of the specified MySQL hosts. 不能使用点.连接 server=.;uid=root;pwd...

.net6使用nacos作为配置中心

consul+.net core实现配置中心:https://www.tnblog.net/aojiancc2/article/details/6815nacos的安装参考:https://www.tnbl...

.net6使用session

先在Program.cs中引入 使用存储 HttpContext.Session.SetString(&quot;nickname&quot;,&quot;test&quot;); 读取 string...

.net6使用nacos实现服务注册与服务发现

.net6使用nacos作为配置中心:https://www.tnblog.net/aojiancc2/article/details/7870docker安装nacos v2.1.2:https://www...

.net6.net core获取服务器上所有网卡的IP地址

代码如下: //获取服务器上所有网卡的IP地址 NetworkInterface[] networks = NetworkInterface.GetAllNetworkInterfaces(...

.net6使用nacos 集群部署,负载均衡调用 。docker swarm 集群部署.net6项目

我们这里的k8s测试环境暂时用不了了,这里先使用docker swarm来进行一下集群部署。.net6使用nacos实现服务注册与服务发现:h...
这一世以无限游戏为使命!
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术