Identityserver4配置证书

摘要:
必须使用相应的公钥来验证令牌签名//slproweb。com/products/Win32OpenSSL。html 2。执行以下命令opensslreq newkeyrsa:2048 nodes keyoutas。客户端服务。密钥-x509-days365-outcas。客户端服务。CMD中的cer。

IS4中如果token的类型是JWT,则需要使用RS256算法生成非对称签名,这意味着必须使用私钥来签名JWT token,并且必须使用对应的公钥来验证token签名,即验证token是否有效。使用RS256可以保证IS4服务端是JWT的唯一签名者,因为IS4服务端是唯一拥有私钥的一方,前提是私钥不会被泄露。所以我们需要一个证书为我们提供私钥和公钥。在开发环境可以利用IS4的AddDeveloperSigningCredential方法生成RSA文件,RSA文件为我们提供私钥和公钥,但是RSA文件不够安全,打开文件可以直接看到公钥和私钥,在生产环境我们一般会生成证书来提供私钥和公钥。使用OpenSSL生成证书的方式如下:

1、安装OpenSSL工具 ,官网下载地址:https://slproweb.com/products/Win32OpenSSL.html 

Identityserver4配置证书第1张

2、在CMD中执行以下命令

openssl req -newkey rsa:2048 -nodes -keyout cas.clientservice.key -x509 -days 365 -out cas.clientservice.cer

Identityserver4配置证书第2张

执行上面命令之后,我们可以在C:UsersAndy目录下面找到cas.clientservice.cer和cas.clientservice.key两个文件

下面的命令是将生成的证书和Key封装成一个文件,以便IdentityServer可以使用它们去正确地签名tokens,文件会生成在CMD执行目录下面“C:UsersAndy”
openssl pkcs12 -export -in cas.clientservice.cer -inkey cas.clientservice.key -out IS4.pfx

IS4.pfx是证书名称,可以自己修改,中途会提示让你输入Export Password,这个password在IS4中会用到,需要记下来。

如果执行上面的命令报错,则需要配置环境变量,然后再执行命令:

Identityserver4配置证书第3张

3、配置IS4的证书

services.AddIdentityServer()
                    //.AddDeveloperSigningCredential(true, ConstanceHelper.AppSettings.CredentialFileName)
                    .AddSigningCredential(new X509Certificate2(Path.Combine(basePath,
                         configuration["Certificates:Path"]),
                         configuration["Certificates:Password"]))
                   .AddInMemoryApiResources(Config.GetApis())
                   .AddInMemoryIdentityResources(Config.GetIdentityResources())
                   .AddInMemoryClients(Config.GetClients())
                   .AddProfileService<ProfileService>()
                   .AddResourceOwnerValidator<ResourceOwnerPasswordValidator>()
                   .AddCustomAuthorizeRequestValidator<CustomAuthorizeRequestValidator>();

4、在appsettings.json中添加证书配置信息

{
  "Certificates": {
    "Path": "Certificates\IS4.pfx",
    "Password": "xxxxxx"
  }
}

参考资料:

https://www.cnblogs.com/edisonchou/p/identityserver4_foundation_and_quickstart_01.html

https://www.cnblogs.com/dingshuanglei/p/10237710.html

https://www.cnblogs.com/ycm-up/p/9810525.html

免责声明:文章转载自《Identityserver4配置证书》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇QoS令牌桶工作原理Lucene实践之中文分词IKAalyzer下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

文件异步上传

本文摘抄自网络 XHR对象还有一个属性upload, 它返回一个XMLHttpRequestUpload 对象,这个对象拥有下列下列方法: onloadstart onprogress onabort onerror onload ontimeout onloadend 这些方法在XHR对象中都存在同名版本,区别是后者是用于加载资源时,而前者用于资源上...

管理ONS(Oracle Notification Service)

Onsctl  Onsctl这个命令是用来管理ONS(Oracle Notification Service)是OracleClustser实现FAN Event Push模型的基础。  Oracle Notification Service (ONS)--A publish and subscribe service for communicating...

接口-配置文件

实现功能:通过更改配置文件实现不同的功能 1,创建以下内容  2,ICar接口代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 接口配置文件 {...

debian/ubuntu安装mssql

添加源: debian源:deb [arch=amd64] https://packages.microsoft.com/debian/10/prod buster main ubuntu源:deb [arch=amd64] https://packages.microsoft.com/ubuntu/19.04/prod disco main apt in...

Tomcat系列(7)——Tomcat类加载机制

1. 核心部分 1. 类加载器:   通过一个类的全限定名来获取描述此类的二进制字节流。   对于任意一个类,都需要由加载他的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类命名空间。 2. 类加载机制:   按需加载。   Java虚拟机把描述类的数据从Class文件加载进内存,并对数据进行校验,转换解析和初始...

CVE-2017-12617 Tomcat 远程代码执行

0×00前情提要 Apache Tomcat团队10月3日宣布,如果配置了默认servlet,则在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操作系统上的潜在危险的远程执行代码(RCE)漏洞,CVE-2017-12617:远程代码执行漏洞。 只需参数readonly设置为false或者使用参数read...