我对证书和所有这些都很陌生。
我有一个Web应用程序,它通过iframe发送https请求(由于应用程序本身也是https,它必须是https)到运行在客户端上的.NET应用程序,该应用程序在https://localhost:[port]上监听HttpListener所以客户端应用程序可以接收"现在做某事"从浏览器点击。
当我安装客户端应用程序时,我将* .crt文件安装到根存储并将其绑定到我们的端口:
X509Certificate2 certificateFromCrtFile = new X509Certificate2(X509Certificate2.CreateFromCertFile(crtPath));
X509Store rootStore = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
rootStore.Open(OpenFlags.ReadWrite);
rootStore.Add(certificateFromCrtFile);
rootStore.Close();
string crtThumbprint = certificateFromCrtFile.Thumbprint;
string netshParams = string.Format("http add sslcert ipport=0.0.0.0:[port] certhash={0} appid={X509Certificate2 certificateFromPfxFile = new X509Certificate2(pfxPath, "pwd");
X509Store personalStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
personalStore.Open(OpenFlags.ReadWrite);
personalStore.Add(certificateFromPfxFile);
personalStore.Close();
}", crtThumbprint, Guid.NewGuid());
Utilities.StartProcess("netsh.exe", Environment.SystemDirectory, netshParams, true, true);
现在,在此之前,我还必须在个人商店安装证书,因为我的服务器"在这种情况下是同一客户端上的HttpListener。
好的,我可以通过以下方式完成:
{{1}}
在这种情况下,我必须在代码中以明文形式写出* .pfx密码。 如果我理解正确,使用此密码您可以轻松获得私钥,对吧?
答案 0 :(得分:0)
在PFX中存储时,私钥会使用您的密码加密。因此,当您尝试将其安装到个人商店以表明您对此证书的所有权时,您必须提供密码。这个任务。
受信任的根权限是不同的,因为您不拥有证书。您只需安装crt文件即表示您信任拥有它们的人。