IdentityServer4 默认提供了两种证书加密配置:
这两种证书加密方式,都是临时使用,每次重启项目的时候,都会重新生成一个新的证书,这时候就会导致一个问题,重启之前生成的<code>access_token</code>,在重启之后,就不适用了,因为证书改变了,对应的加密方式也改变了,所以,就会出现下面这个问题:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iN0EzMzUTMwITMtIzNzcDN5AjMyUDM2AzNxAjMtgDOxUzM08CX2AzNxAjMvwFO4ETNzQzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
错误信息:
Www-Authenticate:Bearer error="invalid_token", error_description="The signature key was not found"
解决方式,就是始终使用一个证书,我们先这样配置:
<code>AddDeveloperSigningCredential</code>中代码执行,会先判断<code>tempkey.rsa</code>证书文件是否存在,如果不存在的话,就创建一个新的<code>tempkey.rsa</code>证书文件,如果存在的话,就使用此证书文件。
所以,我们配置的时候,传递一个<code>tempkey.rsa</code>证书文件名,就可以了:
当然,你也可以对<code>tempkey.rsa</code>证书文件,进行重命名操作。
本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/identityserver4-signing-credential-rsa.html,如需转载请自行联系原作者