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

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

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

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

有没有办法用httplistener实现这一点? 从代码显然。

问候。

您可以使用以下命令加载证书:

 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