0
我是2WaySSL的新手。将私钥添加到X509Certificate2 - C#
我想要做的事:
1. Retrieve a Client certificate which is stored in a certificate store,
I'm managing to do that by such code:
certificates = store.Certificates.Find(X509FindType.FindBySerialNumber, serialNumber, false);
当安装证书请求,由服务器验证失败, 因为我的证书对象不包含私钥。
我试图找到一种将私钥与证书相关联的方式(在C#中), 一旦我将从存储它的位置检索密钥。
类似:
certificate.PrivateKey = key;
但是我发现无论是启动的主要对象,或没有得到一些例外,将其分配给该证书的没有简单的方法,即使关键是空的,我得到一个拒绝访问异常。
任何帮助,尤其是后面的代码示例,将不胜感激。
感谢您回应之一。 关于PFX文件, 如果它包含密码, 这是不是表示任何能够访问该文件的人都获取密码? 不应将密码存储在别处,而不要存储在证书文件中? –
pfx文件中的私钥使用此密码进行保护。密码本身不是文件的一部分。但是,如果使用pfx文件,则可以将文件复制到其他地方(如果有人可以访问文件系统)并尝试通过暴力猜测密码。我更喜欢使用证书存储。当安全性是主要优先级时,我使用HSM来存储私钥(或智能卡),但证书仍在证书存储中。 – pepo
我一定错过了一些东西。 我打开证书管理单元(使用mmc),访问相关证书存储并查看证书。 找到序列号后,在详细信息选项卡中,我使用以下代码: certificates = store.Certificates.Find(X509FindType.FindBySerialNumber,serialNumber,false); 现在我有权访问证书及其私钥,使用: 证书[0] .PrivateKey.ToXmlString(false) 想法? –