目前我们手动转到网址下载根证书。 但是现在需要自动化它。我正在寻找如何实现这一目标的C#示例。我想将url作为参数,然后程序必须接管并在后台打开此url,下载并安装所请求的证书,而无需用户做任何事情,或者知道发生了什么。当您手动执行此操作时,没有提示输入用户名和密码,因此该库可以让我进行此类调用。
请给我一些关于该做什么的建议,或者我可以阅读一些方便的文章让我走?
答案 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
来实现下载。
关于安装,您可以通过X509Store
和StoreName.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