相关疑难解决方法(0)

如何将SSL添加到使用httplistener的.net应用程序 - 它将*不会在IIS上运行

最新的粗体编辑 我使用.net HttpListener类,但我不会在IIS上运行而且不使用ASP.net.该网站描述了使用asp.net实现SSL实际使用的代码,该网站描述了如何设置证书(尽管我不确定它是否仅适用于IIS).

类文档描述了各种类型的身份验证(基本,摘要,Windows等)---它们都没有引用SSL.它确实说如果使用HTTPS,则需要设置服务器证书.这是一个单行的属性设置,并HttpListener找出其余的?

简而言之,我需要知道如何设置证书以及如何修改代码以实现SSL.

虽然在我尝试访问HTTPS时没有出现,但我确实注意到系统事件日志中有错误 - 源是"Schannel",消息的内容是:

尝试访问SSL服务器凭据私钥时发生致命错误.加密模块返回的错误代码是0x80090016.

编辑:
到目前为止采取的步骤

  • 在C#中创建了一个适用于HTTP连接的工作HTTPListener(例如" http:// localhost:8089/foldername / "
  • 使用makecert.exe创建证书
  • 使用certmgr.exe添加了要信任的证书
  • 使用Httpcfg.exe监听测试端口上的SSL连接(例如8090)
  • 通过listener.Prefixes.Add(https:// localhost:8090/foldername / ")将端口8080添加到HTTPListener ;
  • 在浏览器中测试了HTTP客户端连接,例如(http:// localhost:8089/foldername / ")并收到正确的返回
  • 测试了一个HTTPS客户端连接,例如(http:// localhost:8090/foldername / ")在浏览器中接收"数据传输中断"(在Firefox中)
  • Visual Studio中的调试显示,当HTTPS连接启动时,接收请求的侦听器回调永远不会被命中 - 我没有看到任何可以设置断点以便先捕获其他内容的地方.
  • netstat显示侦听端口对HTTPS和HTTP都是开放的.尝试连接后,HTTPS端口会转到TIME_WAIT.
  • FiddlerHTTPAnalyzer没有捕获任何流量,我想它在这些HTTP分析工具中显示的过程中还不够

问题

  • 问题是什么?
  • 是否有一段我缺少的.Net代码(这意味着我必须在C#中做更多的事情,而不是简单地向指向HTTPS的侦听器添加前缀,这就是我所做的)
  • 在某个地方错过了配置步骤?
  • 我还可以做些什么来分析问题?
  • 系统事件日志中的错误消息是否是问题的标志?如果是这样,它将如何修复?

.net authentication encryption ssl

41
推荐指数
3
解决办法
2万
查看次数

标签 统计

.net ×1

authentication ×1

encryption ×1

ssl ×1