
.Net6 设置信任自签证书(浏览器可信任)
先决条件
确保本地windows上拥有openssl,没有的自己去:http://slproweb.com/products/Win32OpenSSL.html 下载。
开始
先到指定的证书目录下,创建一个http.ext
文件,并填写如下内容。
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName
[ SubjectAlternativeName ]
DNS.1=www.samples.com
在该目录下打开一个cmd
,创建www.samples.com
域名的证书。
openssl
genrsa -out test1.key 2048
req -new -key test1.key -out test1.csr
x509 -req -days 365 -in test1.csr -signkey test1.key -out test1.cer -extfile http.ext
x509 -inform PEM -in test1.cer -out test1.crt
pkcs12 -export -out test1.pfx -inkey test1.key -in test1.cer
# 查看创建情况
x509 -in test1.cer -text -noout
然后双击pfx
或cer
文件进行安装。
创建API项目
首先我们在appsettings.json
中创建我们证书的路径、密码与端口变量。
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"CertName": "D:\\Learning\\myhttps\\test1.pfx",
"CertPwd": "123456",
"ServerPort": 7055,
"AllowedHosts": "*"
}
接着我们在Program.cs
中设置使用该证书。
using Microsoft.Extensions.DependencyInjection;
using System.Security.Cryptography.X509Certificates;
var builder = WebApplication.CreateBuilder(args)
;
builder.WebHost.UseKestrel(options =>
{
var port = builder.Configuration.GetValue<int>("ServerPort");
options.ListenAnyIP(port, config =>
{
var certPath = builder.Configuration.GetValue<string>("CertName");
var certPwd = builder.Configuration.GetValue<string>("CertPwd");
var x509ca = new X509Certificate2(certPath, certPwd);
config.UseHttps(x509ca);
});
});
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
然后我们设置本地hosts
文件,它的位置在C:\Windows\System32\drivers\etc\hosts
。将请求域名指向本地,添加下面这一行。
127.0.0.1 www.samples.com
测试运行
首先我们启动项目在浏览器中访问我们的Swagger。
我本地地址是:https://www.samples.com:7055/swagger
发现它并不认可。
所以我们还需要安装证书。
点击浏览器设置。
然后搜索我们的证书
(certificate),并点击。
在Intermediate Certification Authorities
和Trusted Root Certification Authorities
安装好我们的www.samples.com
证书。
两个都装。
然后关闭,并重启浏览器进行访问就没什么问题了。
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术