最佳答案
似乎有很多令人困惑,有时相互矛盾的信息,关于制定一个。NET HTTPListener HTTPS 支持。我的理解是:
一个人的 C # 代码需要一个 https
前缀(例如,https://*:8443
) ,以便侦听器理解它需要在这个端口服务 SSL 请求。
实际的 SSL 握手发生在封面之下,由 http.sys
(隐藏在 Windows 机器的某个地方)处理。C # 代码不必显式地管理 SSL 握手,因为它是在幕后进行的。
我们需要在 httpListener
机器上有一个“ X.509受信任证书”,而且该证书需要以某种方式绑定到端口8443(在本例中)。
我上面的理解正确吗? 如果不正确,请告诉我。
关于 X.509证书,我的理解是:
makecert
创建 X.509证书。该证书存储在个人存储中,需要移动到可信存储(HTTP 侦听器将在此处查看)。看起来我可以使用 certMgr
来执行移动,或者我可以使用 mmc
来执行移动。似乎有不止一种 X.509证书格式(DER
、 Base64
、 pks
、 pswd protected、 pks
private 等) ... ... 是否有我应该使用的首选格式?将证书放入受信任的存储区后,需要将其绑定到 TCP 端口。我在 Windows 7: 我应该使用 httpcfg
还是 netsh
?