【发布时间】:2012-07-09 08:10:06
【问题描述】:
关于使 .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 保护、pks私有等)...有我应该使用的首选格式吗?李>
将证书放入受信任的存储区后,我需要将其绑定到 TCP 端口。我在 Windows 7 上:我应该使用 httpcfg 还是 netsh?
【问题讨论】:
标签: .net x509certificate httplistener