我正在嘗試創建一個適用於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