我发现了很多答案如何将httplistener设置为使用HTTPS,但每个解决方案都需要使用命令行。我想这是最快的方法,但我想编写C#类来处理这个问题。
在旧的解决方案中,我使用了webserver类(在Internet上的某个地方找到,我不记得确切的名称),它允许以这种方式添加证书:
webserver.Certificate = new X509Certificate2("MyCert.pfx", "MyPassword");
有没有办法用httplistener实现这个目的?显然来自代码。
问候。
答案 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