自动下载并安装根证书

问题描述:

目前我们手动进入url下载根证书。 但是现在需要将其自动化。我正在寻找如何完成这个C#的例子。我想将url作为参数,然后程序必须在后台接管并打开此URL,下载并安装所需的证书,而无需用户执行任何操作,或知道发生了什么。当您手动执行时,没有提示输入用户名和密码,因此该库应该使我能够进行此类调用。自动下载并安装根证书

请给我一些建议做什么,或一些方便的文章,我可以读取让我去?

由于您提供的信息是相当普遍的你如何能实现这一些一般的指针:

下载可以通过WebClient和/或HttpWebRequest来实现。

至于安装,你可以做到这一点通过X509Store连同StoreName.Root - 有关详细说明和示例源代码看到http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.aspx

+0

嗨获得根证书,感谢您的回复。使用的URL被输入到Internet Explorer中,然后出现一个弹出窗口,询问您是否要保存,下载或取消证书。我想这是自动的,文件应该保存到一些本地的密钥库,并且也安装了。你提出的技术有可能吗? – Harriet

+0

是的 - 不要将URL输入到Internet Explorer中,而只需将URL与“WebClient”或“HttpWebRequest”类一起使用 - 这些可以保存下载的证书文件,然后使用“X509Store”类将其安装到根存储...只需按照我的答案中的链接... – Yahia

+0

谢谢。我正在阅读您现在提供的链接。 – Harriet

与任何你喜欢的HTTP请求方法下载。安装它想:

app.ClientCertificates.Add(
    new System.Security.Cryptography.X509Certificates.X509Certificate2(
     @"c:\Downloads\testcert.pfx", "password")); 

在这里看到更多的信息对管理证书:http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate2.aspx

+0

我不认为他在谈论客户端证书。 –

这里的例子,如何从证书颁发机构

// address - CA address 
public static void InstallRootCert(string address) 
{ 
    // getting root cert    
    ICertRequest2 objRequest = new CCertRequest(); 
    string rootCert = objRequest.GetCACertificate(0, address, 0); 
    byte[] buffer = Encoding.UTF8.GetBytes(rootCert); 

    // installing 
    var store = new X509Store("Root", StoreLocation.CurrentUser); 
    store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadWrite); 
    var root = new X509Certificate2(buffer); 
    store.Add(root); 
}