我试图登入凭证(OpenIddict),但与指纹努力时,我得到错误:OpenIddict误差AddSigningCertificate
options.AddSigningCertificate(Configuration["Certificate"]/* db b9 12 .... 22 */);
和错误:
Application startup exception: System.Security.Cryptography.CryptographicException: OpenCSP failed with error code 2148073494.
在这一行:
app.UseOpenIddict();
如果我尝试使用X509Certificate2我也会收到错误:
var cert = new X509Certificate2(Configuration["Certificate"]/*path to file.cer*/);
options.AddSigningCertificate(cert);
和错误:
System.InvalidOperationException: The certificate doesn't contain the required private key.
在同一行app.UseOpenIddict();
。
我使用的是与https协议相同的证书。这个可以吗? 我的活动令牌随机消失(我试图刷新令牌时得到invalid_token)。我发现在使用AddEphemeralSigningKey
时会发生这种情况,因为连接丢失时(由于IIS空闲超时),所有令牌都将丢失。正因为如此,我试图使用AddSigningCertificate
。
还有别的办法吗?有人可以告诉我,证书有什么问题吗?谢谢。
我正在使用ASP.NET Core 1.1.1。
我为.cer文件的IIS用户添加读取权限。
使用单独的证书确实是正确的做法。注意:您应该考虑将其存储在机器商店中。您看到的错误很可能是由于IIS应用程序池标识不允许访问私钥导致的。您可以阅读http://bartwullems.blogspot.com/2012/02/grant-iis-75-access-to-certificate-in.html了解更多信息。 – Pinpoint