我们需要对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天, 命令参数里面设定的.
这是生成的文件:
一个证书和一个key, 然后我们需要给他们俩封装成一个文件, 以便identity server可以使用它们去正确的签名tokens. 这就需要使用另一个命令:
openssl pkcs12 -export -in socialnetwork.cer -inkey socialnetwork.key -out socialnetwork.pfx
这里发生了错误...那就使用管理员打开命令行:
输入密码和确认密码后, 没问题了.
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