x509.PrivateKey报“指定的提供程序类型无效”错误

坑死了,折腾了一天,在这里留个纪念。

        x509.PrivateKey报“指定的提供程序类型无效”错误。

        网上搜一大堆,全都是误人子弟的东西,大致的意思是:

        操作系统升级后证书中的私钥是以CngKey的方式存在,

        http://clrsecurity.codeplex.com 提供了RSACng的封装,使用如下:

        if (x509.HasCngKey()) 

                var privateKey = x509.GetCngPrivateKey();

        .net4.6 以后的版本提供了对x509的扩展,使用如下:

        x509.GetRSAPrivateKey(); 得到RSACng

        真实的情况是:的确和操作系统有关,64位的操作系统在运行32位的程序时,那个wow64就不提供升级改进后的这些安全类型了,

        所以64位的IIS千万不要去把应用程序池的"启动32位应用程序"设置成True,如果有什么32位的程序就全都换成64位的吧,这才是人间正道。

 

posted @ 2017-04-20 08:32  yidev  阅读(1636)  评论(0编辑  收藏  举报