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版本,执行成功,不知道这是怎么个意思

posted @   hello_stone  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示