gpt4 book ai didi

c# - 如何使用 System.Net.HttpListener 在 WebSocket 中启用 SSL

转载 作者:行者123 更新时间:2023-12-02 05:00:43 25 4
gpt4 key购买 nike

我正在 Windows Azure 上使用 .Net 4.5 和 HttpListener 类(辅助角色)来制作我自己的 WebSocket 服务器。对于 HTTP 非安全连接,它工作得很好。问题是我需要使用 SSL(wss://) 来保护 WebSocket 连接。

我四处寻找,HttpListener 类文档和互联网(即使在这里)都没有给我太大帮助。

我发现 httpcfg.exe 应该可以帮助我配置证书,但不太幸运。

所以,这就是我的问题:

  1. 有什么方法可以从我的代码中启用它吗?就像从存储中读取证书并将其设置在 HttpListener 上一样?
  2. 如果不是,httpcfg.exe 是解决方案吗?如果有,如何使用?
  3. 如果 1 == 否且 2 == 是,我如何在 Azure 中使用 httpcfg?

谢谢!我真的很感谢您的帮助...

致以诚挚的问候...

古腾堡

最佳答案

好吧,刚刚想通了。

由于HttpListenerHTTP.sys的包装器,因此我们必须在开始使用HttpListener之前配置它。

httpcfg.exe 用于 Windows Vista 之前的 Windows 版本。由于我使用的是 .net 4.5 HttpListener WebSockets 并且它仅适用于 Windows8/windows Server 2012(如果您尝试在 windows8 之前的 Windows 版本上使用 websockets,您将得到 PlattaformNotSupportedException),我们应该使用 netsh 实用程序而不是 httpcfg

因此,要在 Windows 8 中配置 HTTP.sys,请打开 CMD 并向其中添加以下命令:

netsh http add sslcert ipport=IP:PORT certhash=YOU_CERT_HASH appid={GUID}

IPPORT 更改为您希望通过证书和 YOUR_CERT_HASH 保护的所需 IP 地址和端口号证书的指纹(证书应事先上传到 Azure 门户)和 GUID,其中包含从任何 GUID 生成工具(如 Visual Studio 中的工具 > 创建 GUID)生成的 GUID .

之后,您只需设置 HttpListener.Prefix.Add("https://youIP:youPort/yourPath") 就可以了。

像我一样,有些人会问如何让它在Windows Azure上工作...您可以在启动您的角色之前使用启动任务运行此命令并根据需要设置 HTTP.sys。

有关如何使用启动任务的详细信息,请查看 MSDN 上的文档 http://msdn.microsoft.com/en-us/library/windowsazure/hh180155.aspx有关 httpcfgnetsh 的更多详细信息,请查看 MSDN 中的其他文档 http://msdn.microsoft.com/en-us/library/ms733791.aspx

关于c# - 如何使用 System.Net.HttpListener 在 WebSocket 中启用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17135220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com