为 IdentityServer4 添加签名证书
为 IdentityServer4 添加签名证书
如何生成 IdentityServer4 签名证书?
需要安装 OpenSSL
- 申请一个私钥
1 | openssl genrsa -out <私钥名称>.key 2048 |
- 申请一个公钥
1 | openssl req -new -x509 -key <私钥名称>.key -days 3650 -out <公钥名称>.crt |
会提示输入一些信息,用于颁发机构的信息展示,如公司,所在国家,城市等。
- 公钥和私钥的提取加密
由于传播安全方面的考虑,需要将公钥和私钥进行加密,
微软支持 PCK12(公钥加密技术 12 号标准:Public Key Cryptography Standards #12),
PCK12 将公钥和私钥合在一个 .pfx 后缀的文件中,并用密码保护,
如要提取公钥和私钥,需要密码确认。
1 | openssl pkcs12 -export -in <公钥名称>.crt -inkey <私钥名称>.key -out <证书名称>.pfx |
- 使用证书
将生成的 .pfx 文件复制到项目的目录中,并在配置文件 appsettings.json
里填好路径和密码
1 | "Certificates": { |
最后在程序里加载这个证书
1 | if (Environment.IsDevelopment()) |
如果想调试环境也统一证书,可以把环境判断去掉,只用 AddSigningCredential
方式加载密钥证书。