在远程服务器X509Store上添加的C#X509Certificate2无法导出

时间:2017-02-08 21:33:53

标签: c# x509certificate2

我已经在网站上挖掘了3天,并找到了很多本地导入的解决方案,但远程导入X509Certificate2对象却没有这个问题。

使用以下代码,我可以获取要导入的.pfx文件并说它有一个私钥,但它不会将其标记为可导出。

var cert = new X509Certificate2(certPath, 
                                certPwd,
                                X509KeyStorageFlags.MachineKeySet |
                                X509KeyStorageFlags.PersistKeySet | 
                                X509KeyStorageFlags.Exportable);
var certStore = new X509Store($@"\\{server}\My", StoreLocation.LocalMachine);
certStore.Open(OpenFlags.ReadWrite);
certStore.Add(cert);
certStore.Close();

它连接到远程服务器,它会安装证书,但由于它不可导出,我们无法在IIS中绑定证书。

我也尝试过使用X509Chain和X509Collection,但这些会再次导入证书,但不能导出。

我在这里对着桌子打我的头。任何人都可以给我一些指示吗?

服务器都是Win2k8或更高版本(大多数是2012年)。

---编辑如下--- 一些额外的澄清。

  • 我创建了一个Rest API,尝试在远程服务器上实际安装证书。

  • 应用程序池标识位于我尝试安装证书的服务器上的管理员组中。

  • 我今天使用Win32API编写了一个工具来进行安装并且工具正常工作。当我将代码添加到Rest API时,证书仍然无法绑定到IIS https站点。

我倾向于这是一个用户上下文问题。

---结束编辑---

谢谢! -Ed

0 个答案:

没有答案