关于做出决定,似乎有很多令人困惑的信息,有时是相互矛盾的.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
私有等)……有没有我应该使用的首选格式?
Once I get the certificate into the trusted store, I need to bind it to the TCP port. I am on Windows 7: should I be using httpcfg
or netsh
?