支持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