C# 使用私钥安装证书
我正在将此批处理命令的一部分转换为托管代码:C# 使用私钥安装证书,c#,C#,我正在将此批处理命令的一部分转换为托管代码: "%~dp0\makecert" -r -pe -n "CN=CompanyName" -ss my -sr localmachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 "%~dp0\server.cer" 这不仅创建证书,还安装证书 安装证书时,它看起来如下所示: 现在我正在尝试在使用托管代码时安装私有证书 这就是我到目前为止所做的:
"%~dp0\makecert" -r -pe -n "CN=CompanyName" -ss my -sr localmachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 "%~dp0\server.cer"
这不仅创建证书,还安装证书
安装证书时,它看起来如下所示:
现在我正在尝试在使用托管代码时安装私有证书
这就是我到目前为止所做的:
/// <summary>
/// Install the root authority certificate
/// </summary>
/// <param name="fileName"></param>
private static void InstallRootAuthority(string fileName)
{
var cert = new X509Certificate2(X509Certificate.CreateFromCertFile(fileName));
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
}
//
///安装根授权证书
///
///
私有静态void InstallRootAuthority(字符串文件名)
{
var cert=new X509Certificate2(X509Certificate.CreateFromCertFile(文件名));
var store=new X509Store(StoreName.My,StoreLocation.LocalMachine);
打开(OpenFlags.ReadWrite);
存储。添加(证书);
store.Close();
}
如何添加私钥?因此,要实现这一点,您需要使用.pfx文件(我认为该文件不仅包含证书,还包含私钥) 这就是我所做的
请原谅格式化,但在回答时stackoverflow格式被破坏 我很确定你的代码是有效的。您是否100%确定
文件名处的证书包含私钥?通常,当证书文件包含私钥时,它受密码保护,我看不到您使用密码还有另一件事我不太明白:您的方法名为InstallRootAuthority
,但您正在将其安装到StoreName.My
。通常,根证书属于StoreName.root,否则不会自动验证客户端证书和服务器证书。你是故意这么做的吗?