我使用以下代码在WinXp桌面中使用密码/私钥导入证书。
最近我迁移到了windows7,现在我无法导入私钥,尽管证书会在商店中导入。
这里有什么问题?非常感谢任何帮助。
X509Store store = new X509Store(StoreName.My);
X509Certificate2 certificate = new X509Certificate2(“certFileName”,“password”); store.Open(OpenFlags.ReadWrite); store.Add(证书); store.Close()
注意到即使我输入了错误的密码,证书仍会被导入,私钥字段显示为null。但是如果密码正确,它应该填充:-(
答案 0 :(得分:0)
检查您是否拥有正确的权限:
How to set read permission on the private key file of X.509 certificate from .NET
您还可以尝试向证书构造函数添加存储标志:
X509Certificate2 certificate = new X509Certificate2("certFileName", "password", X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);
设置此权限可能会有所帮助: https://serverfault.com/questions/48124/disabling-strong-private-key-encryption-on-a-personal-certificate