我有通过MakeCert生成的证书.我想使用PeerTrust将此证书用于WCF消息安全性.如何使用c#或.NET以编程方式将证书安装到"受信任的人"本地计算机证书存储中?
我有一个CER文件,但也可以创建一个PFX.
以下是将pfx添加到Cert存储的代码.
X509Store store = new X509Store( StoreName.My, StoreLocation.LocalMachine );
store.Open( OpenFlags.ReadWrite );
X509Certificate2 cert = new X509Certificate2( "test.pfx", "password" );
store.Add( cert );
store.Close();
Run Code Online (Sandbox Code Playgroud)
但是,我找不到为NetworkService设置访问私钥的权限的方法.
任何人都能解释一下吗?提前致谢.
我正在尝试在自定义操作中在本地计算机存储中安装证书.证书已安装,但当我使用它来查询AWS时,我收到此错误:
对象仅包含密钥对的公共一半.还必须提供私钥.
安装程序正在升级,目标是Windows Vista.
如果我使用单独的.exe来安装完全相同的证书,使用完全相同的代码,它的工作原理.那么使用Windows Installer安装证书时有什么不同呢?
代码:
private void InstallCertificate(string certificatePath, string certificatePassword)
{
if (IsAdmin())
{
try
{
X509Certificate2 cert = new X509Certificate2(certificatePath, certificatePassword,
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
}
catch (Exception ex)
{
throw new DataException("Certificate appeared to load successfully but also seems to be null.", ex);
}
}
else
{
throw new Exception("Not enough priviliges to install certificate");
}
}
Run Code Online (Sandbox Code Playgroud)