我正在尝试登录证书(OpenIddict),但在尝试使用拇指指纹时出现了错误:
options.AddSigningCertificate(Configuration["Certificate"]/* db b9 12 .... 22 */);而错误是:
应用程序启动异常: System.Security.Cryptography.CryptographicException: OpenCSP失败,错误代码为2148073494。
在这一行:
app.UseOpenIddict();如果我尝试使用X509Certificate2,我也会得到错误:
var cert = new X509Certificate2(Configuration["Certificate"]/*path to file.cer*/);
options.AddSigningCertificate(cert);而错误是:
System.InvalidOperationException:证书不包含所需的私钥。
同一行app.UseOpenIddict();。
我使用的证书与https协议使用的证书相同。这样可以吗?我的活动令牌随机消失(当我试图刷新令牌时得到invalid_token )。我发现如果使用AddEphemeralSigningKey,就会发生这种情况,因为当删除连接(因为IIS空闲超时)时,所有令牌都丢失了。正因为如此,我正在尝试使用AddSigningCertificate。
还有别的办法吗?有人能告诉我,证书有什么问题吗?谢谢。
我使用的是ASP.NET核心1.1.1。
我为IIS用户添加了.cer文件的读取权限。

发布于 2017-04-20 08:45:28
我用SelfCert (https://s3.amazonaws.com/pluralsight-free/keith-brown/samples/SelfCert.zip)创建的新证书解决了我的问题。
然后,我将证书添加到项目源代码中,并调用AddSigningCertificate:
if (this.env.IsDevelopment())
options.AddEphemeralSigningKey();
else
options.AddSigningCertificate(new FileStream(Directory.GetCurrentDirectory() + "/Resources/cert.pfx", FileMode.Open), "pass");我还必须为IIS用户添加完整的权限。阅读和执行权利是不够的。
就是这样。它起作用了。
发布于 2018-11-21 19:31:14
在机器个人商店使用证书。
您必须对站点的应用程序池进行权限处理。
去找机务经理。
在个人文件夹中,右键单击证书并选择All Task>Manage private keys (不确定英文选项,我的os是西班牙语)
在安全窗口中添加应用程序池用户,您可以在站点或应用程序的基本配置中看到它。
IIS APPPOOL\here_your_app_pool_name则可以在启动时使用
options.AddSigningCertificate("here cert thumbprint, look for it in cert info");https://stackoverflow.com/questions/43486879
复制相似问题