自动下载和安装根证书

时间:2011-09-26 13:02:52

标签: c# download certificate install

目前我们手动转到网址下载根证书。 但是现在需要自动化它。我正在寻找如何实现这一目标的C#示例。我想将url作为参数,然后程序必须接管并在后台打开此url,下载并安装所请求的证书,而无需用户做任何事情,或者知道发生了什么。当您手动执行此操作时,没有提示输入用户名和密码,因此该库可以让我进行此类调用。

请给我一些关于该做什么的建议,或者我可以阅读一些方便的文章让我走?

3 个答案:

答案 0 :(得分:1)

以下是如何从证书颁发机构获取根证书的示例

// 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);
}

答案 1 :(得分:0)

由于您提供的信息非常一般,因此您可以通过以下方式了解如何实现此信息:

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

关于安装,您可以通过X509StoreStoreName.Root一起进行安装 - 有关详细信息和示例来源,请参阅http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.aspx

答案 2 :(得分:0)

使用您喜欢的任何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