从程序内部管理HTTPS服务器证书?

时间:2010-12-13 18:57:03

标签: .net ssl https ssl-certificate netsh

我想从.NET代码中执行以下操作:

  1. 在商店中创建自签名证书,获取其指纹;
  2. 将现有证书文件导入商店。同样,获取指纹;
  3. 根据“netsh http add sslcert”配置使用此证书的HTTPS端口。我可以从我的程序中简单地运行这个控制台命令,但是如果有更好的方法会很好。
  4. 顺便说一下,第3项是我需要第1项和第2项中的指纹的原因。这可能吗?

1 个答案:

答案 0 :(得分:2)

查看System.Security.Cryptography.X509Certificates命名空间。

值得注意的是,X509Store类至少会执行您要引用的一项内容:将现有证书导入到商店中。 e.g。

X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
try
{
 store.Open(OpenFlags.ReadWrite);
 store.Add(
     new X509Certificate2(@"Certificates\MyCertificate.pfx", "password"));
}
finally
{
 store.Close();
}

另见:


在您创建证书的其他部分中,我发现了这一点:makecert.cs: makecert clone tool ...如果您不打算调用像makecert.exe这样的控制台工具,那么您很可能最终实现类似的东西。