rsa私钥被识别为cng

时间:2017-02-27 09:39:12

标签: c# windows certificate x509certificate ws-federation

在使用system.identity.model的WS-federation应用程序上,一个CNG证书给我带来了麻烦。

首先,我收到了这个错误:

  

错误:' ID1039:无法访问证书的私钥。   确保证书的私钥上的访问控制列表(ACL)   授予对应用程序池用户的访问权限。 [...]提供商无效   指定的类型。

我发现cng证书似乎与system.identityModel不兼容。 然后我跟着these step将我的cng私钥转换为RSA私钥。 新证书在我的计算机(w10)或其他Windows Server 2012上运行良好。

我制作了一个小程序来检查。在转换之前,HasCngKey为真,GetCngPrivateKey返回" System.Security.Cryptography.CngKey",当然,PrivateKey会抛出无效的提供者类型异常。
转换后,HasCngKey为false,我可以使用cert.PrivateKey获取私钥。

但是在客户端uat环境中,对于相同的新证书,HasCngKey仍然是真的,但GetCngPrivateKey抛出" System.Security.Cryptography.CryptographicException:Keyset不存在" 和cert.PrivateKey仍然抛出指定的无效提供程序类型,就好像密钥仍然是cng。

有没有人知道为什么它在某台机器上工作但不是好机器?

0 个答案:

没有答案