首页 > 技术文章 > identity server4 证书

leon-ytparty 2018-09-07 14:22 原文

 我们需要对token进行签名, 这意味着identity server需要一对public和private key. 幸运的是, 我们可以告诉identity server在程序的运行时候对这项工作进行设定: AddDeveloperSigningCredential(), 它默认会存到硬盘上的, 所以每次重启服务不会破坏开发时的数据同步. 这个方法只适合用于identity server4在单个机器运行, 如果是production farm你得使用AddSigningCredential()这个方法.

 

使用正经的证书:

证书可以通过几种渠道获得, 可以购买, 可以使用IIS生成, 也可以使用Openssl这样的工具生成证书. 我就使用openssl吧.

去openssl的windows官网: https://slproweb.com/products/Win32OpenSSL.html

下载 1.1.0版: https://slproweb.com/download/Win64OpenSSL-1_1_0f.exe

安装后, 打开命令行.

openssl req -newkey rsa:2014 -nodes -keyout socialnetwork.key -x509 -days 365 -out socialnetwork.cer

具体的信息就不管了. 这个证书的有效期是365天, 命令参数里面设定的.

这是生成的文件:

0?wx_fmt=png

一个证书和一个key, 然后我们需要给他们俩封装成一个文件, 以便identity server可以使用它们去正确的签名tokens. 这就需要使用另一个命令:

openssl pkcs12 -export -in socialnetwork.cer -inkey socialnetwork.key -out socialnetwork.pfx

0?wx_fmt=png

这里发生了错误...那就使用管理员打开命令行:

0?wx_fmt=png

输入密码和确认密码后, 没问题了.

0?wx_fmt=png

pfx就是我们需要的文件.

然后修改一个Startup的ConfigureServices:

 

 public void ConfigureServices(IServiceCollection services)
{
            services.AddIdentityServer()                
          // .AddDeveloperSigningCredential()                
          .AddSigningCredential(new X509Certificate2(@"D:\Projects\test\socialnetwork.pfx", "password"))                .AddTestUsers(InMemoryConfiguration.Users().ToList())                .AddInMemoryClients(InMemoryConfiguration.Clients())                .AddInMemoryApiResources(InMemoryConfiguration.ApiResources()); }

http://www.cnblogs.com/cgzl/p/7780559.html

推荐阅读