我正在尝试创建一个适用于HTTPS的小型C#Web服务器。我决定使用this WebServer library,因为它似乎在做我想要的一切。当谈到SSL/TLS时,我不是最有知识的人,所以我想知道是否有人能帮我让HTTPS的一部分工作。基本上,我需要它创建一个SSL证书,该证书将与Web服务器库(from this example,它看起来像使用X.509证书)一起工作,然后将该证书添加到计算机和/或当前用户的可信证书。以编程方式创建并信任C#的SSL证书?
下面的代码我迄今(基本上只是复制&从例如粘贴):
var certificate = new X509Certificate2("C:\\Certs\\certificate.dat", "password");
// We do the cast since we want to specify UseClientCert
var listener = HttpListener.Create(System.Net.IPAddress.Any, 8080, certificate);
listener.RequestReceived+=listener_RequestReceived;
listener.Start(5);
代码在什么地方,我需要检查,如果“C:\证证书\ certificate.dat”的存在&被计算机信任,如果没有,它应该创建证书并信任它。
应用程序运行升高,所以权限问题不应该是一个问题
编辑1: 它看起来像我应该解释究竟是什么,我试图做的。我试图创建一个程序,该程序在运行时将启动要在本地计算机上使用的HTTPS Web服务器。我并没有试图用密钥来做任何真正的验证,只是为了让计算机访问HTTPS本地页面而没有得到大量的“OMG这个页面没有一个好的安全密钥!!!”错误。它只能用于非敏感数据的测试&,所以实际安全性并不重要,只要它可以工作。
在代码方面,我使用this WebServer library来处理实际的Web服务,而且代码是从from this example
代码和问题一样神秘。 Afaict,你得到了整个证书过程。证书由权威机构签发,而不是您。该机构拥有服务器,可以让有人验证您的证书是否合法,并且您确实是您自称的人。你不能成为你自己的权威,这相当于我十几岁的儿子说“相信我爸爸!”。或者你说你的姓氏真的是“Thepc”。 http://en.wikipedia.org/wiki/Certificate_authority –
@HansPassant OP可能只想创建一个支持https的web服务器,而不是要证明他真的是他所说的。 –
@HansPassant - 你是对的,我的姓氏不是Thepc; D的想法是,这将用于在可以测试网站的计算机上设置一种“快速测试”场景(https和所有)点击一个按钮。我*不*使用这种任何形式的永久性证书系统。对不起,如果代码太模糊;我会稍微编辑一下这篇文章来澄清。 – MatthewSot