identityserver4 安装证书遇到的问题
1、自己生成证书,需要用到openssl,官方下载地址 https://slproweb.com/products/Win32OpenSSL.html
2、到安装目录:C:\Program Files\OpenSSL-Win64\bin打开cmd,或配置class环境变量
3、创建密钥(zamoney.key)和公钥证书(zamoney.crt)
openssl.exe req -newkey rsa:2048 -nodes -keyout zamoney.key -x509 -days 365 -out zamoney.crt -subj "/C=CN/ST=GuangDong/L=ShenZhen/O=kf/OU=sf/CN=*.zaxd.com/emailAddress=shiqirong2003@163.com"
4、使用密钥和公钥证书创建带有公钥和私钥的证书(zamoney.pfx)
openssl pkcs12 -export -out zamoney.pfx -inkey zamoney.key -in zamoney.crt -password pass:123456
5、startup.cs代码
private static void ConfigurationIdentityServer(ServiceConfigurationContext context) { var configuration=context.Services.GetConfiguration(); var connectionString=context.Services.GetConfiguration().GetConnectionString("Default"); var builder = context.Services.AddIdentityServer(options => { options.IssuerUri = configuration.GetValue<string>("Certificates:IssuerUri"); }); builder.AddConfigurationStore(opt => { opt.ConfigureDbContext = context => { context.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)); }; }) .AddOperationalStore(opt => { opt.ConfigureDbContext = context => { context.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)); }; //opt.EnableTokenCleanup = true; //opt.TokenCleanupInterval = 30; }); //builder.AddResourceOwnerValidator<MyResourceOwnerPasswordValidator>(); // in-memory, code config //builder.AddInMemoryIdentityResources(Config.IdentityResources); //builder.AddInMemoryApiResources(Config.ApiResources); //builder.AddInMemoryApiScopes(Config.ApiScopes); //builder.AddInMemoryClients(Config.Clients); builder.AddClientStore<CustomerClientStore>(); builder.AddExtensionGrantValidator<PhoneCodeGrantValidator>(); builder.AddExtensionGrantValidator<SmsGrantValidator>(); var path = configuration.GetValue<string>("Certificates:CerPath"); //获取证书密码 var pwd = configuration.GetValue<string>("Certificates:Password"); //生成X509证书 var cert = new X509Certificate2(path, pwd,X509KeyStorageFlags.MachineKeySet); //在生产环境下使用固定证书 builder.AddSigningCredential(cert); }
遇到的问题:
先是下载了OPENSSL3.0版本,生成了pfx后导入到iis7中,报错“指定的网络密码不正确”
后来下载使用了OpenSSL 1.1.1q 5 Jul 2022版本,执行成功,不知道这是怎么个意思
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?