关于使.NET HTTPListener HTTPS具备能力,似乎存在许多令人困惑的,有时相互矛盾的信息。我的理解如下:
一个人的C#代码需要一个https
前缀(例如https://*:8443
),以便监听器了解它需要在此端口上为SSL请求提供服务。
实际的SSL握手发生在幕后并由http.sys
(安装在Windows机器上的某个地方)处理。C#代码不必显式管理SSL握手,因为它发生在封面下。
需要在计算机上安装“X.509可信证书” httpListener
,并且某种程度上证书需要绑定到端口8443(在此示例中)。
我的理解是否正确?如果没有,请教育我。
关于X.509证书,我的理解是:
使用makecert
创建的X.509证书。此证书存储在个人存储中,需要转移到可信存储(这是HTTP侦听器所在的位置)。似乎我可以certMgr
用来执行移动,或者我可以用它mmc
来实现移动。似乎有一个以上的X.509证书格式(DER
,Base64
,pks
,PSWD保护,pks
私有等)...有没有我应该使用首选格式?
一旦我将证书送入可信商店,我需要将其绑定到TCP端口。我在Windows 7上:我应该使用httpcfg
还是netsh
?
HUX布斯