支持https的http侦听器以c#编码

时间:2014-02-07 13:46:38

标签: c# https certificate httplistener

我发现了很多答案如何将httplistener设置为使用HTTPS,但每个解决方案都需要使用命令行。我想这是最快的方法,但我想编写C#类来处理这个问题。

在旧的解决方案中,我使用了webserver类(在Internet上的某个地方找到,我不记得确切的名称),它允许以这种方式添加证书:

webserver.Certificate = new X509Certificate2("MyCert.pfx", "MyPassword");

有没有办法用httplistener实现这个目的?显然来自代码。

问候。

1 个答案:

答案 0 :(得分:5)

您可以使用以下内容加载证书:

X509Certificate cert = new X509Certificate2("MyCert.pfx");

然后安装它:

X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
if (!store.Certificates.Contains(cert))
{
    store.Add(cert);
}
store.Close();

当然,您可能需要更改特定应用的商店名称或位置。

要运行netsh命令,您可以查看创建和运行进程(即Process.Start)并运行netsh.exe。否则,您必须使用Win32 HttpSetServiceConfiguration函数,或者等效的.NET等效函数。

您可能会发现此代码框文章很有用:http://dotnetcodebox.blogspot.com/2012/01/how-to-work-with-ssl-certificate.html