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

标签 .net ssl https ssl-certificate netsh

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

  1. 在商店中创建自签名证书,获取其指纹;
  2. 将现有证书文件导入商店。同样,获取指纹;
  3. 按照“netsh http add sslcert”配置使用此证书的 HTTPS 端口。我可以简单地从我的程序内部运行这个控制台命令,但如果有更好的方法就好了。

顺便说一下,第 3 项是我需要第 1 项和第 2 项中的指纹的原因。这可能吗?

最佳答案

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

值得注意的是,X509Store 类将至少执行您所指的其中一项操作:将现有证书导入商店。例如

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 这样的控制台工具,您最终可能会实现类似的东西。

关于.net - 从程序内部管理 HTTPS 服务器证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432450/

相关文章:

.net - 跳过 FileHelper 中的列

ruby-on-rails-3 - Rails 3.2、activeresource 和证书认证

c# - 如何配置 IIS/Asp.Net 以使用客户端证书与服务器进行 TLS 连接

ssl - 自定义域丢包

c++ - SSL握手成功后如何获取peer的QSslCertificate

c# - 使用 LiNQ 加载嵌套的 XML

c# - 具有多个控件的 WPF 数据绑定(bind)

c# - 在运行时不是特定于版本的 Visual Studio 项目引用

node.js - 在哪里查找 'cert' 和 'key' 来创建 https 服务器?

java - Java 中的 HTTPS 以奇怪的结果结束