gpt4 book ai didi

ssl - noVNC 仅使用 HTTPS 连接到专用 LAN 上的 VNCServer

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:41 68 4
gpt4 key购买 nike

不确定我是否真的是最新的,但我正在寻找一种方法来将我现有的项目转换为使用 HTML5 websockets。

这是我的情况:

- Client runs a modified java vnc applet with extra parameter (CONNECT).

- Modified stunnel listenin on webserver (with both public, private IP) port 443

- Client connects to 443 and sends (prior to RFB) a HTTP packet like :
'CONNECT 10.0.0.1:4001'

- Stunnel opens a new stream to 10.0.0.1:4001 using SSL wrapper

- VNC Server (@10.0.0.1:4001) responds, connection is established.

现在我想摆脱 Java Applet 并使用 NoVNC 切换到 Websocket。

我希望能够:

- Open a single port on the webserver (HTTPS preferably)
- Have client connect using HTML5 only (no more java applet)

我不能改变:

- VNCServer will still be listening on private LAN only.
- VNCServer will still listen to a bunch of ports, each corresponding to
a virtual server

问题是:

- How to give NoVNC the notion of target HOST:PORT ?
- Is stunnel still be usable ? Or should I change to websocket proxy ?

如果有人有起点,我将不胜感激!

最佳答案

免责声明:我创建了 noVNC,所以我的回答可能有很大的偏见;-)

我先回答你第二个问题:

stunnel 不能被 noVNC 直接使用。问题是 WebSockets 协议(protocol)有一个类似 HTTP 的初始握手,并且消息是成帧的。此外,在将二进制负载支持添加到 WebSockets 之前,负载由 websockets 代理 (websockify) 进行 base64 编码。为 stunnel 添加必要的支持并非易事,但肯定是可行的。事实上noVNC issue #37将此支持添加到 Stunnel 是一项令人向往的功能。

第一个问题:

noVNC 已经通过 RFB.connect(host, port, password) 方法有了 HOST:PORT 的概念。顶层的文件 vnc_auto.html 展示了如何根据指定为 URL 查询字符串参数的主机、端口和密码让 noVNC 在页面加载时自动连接。

但是,我认为您真正要问的是如何让 noVNC 连接到后端的备用 VNC 服务器端口。 noVNC 和 websockify 没有直接解决这个问题。有几种方法可以解决这个问题,它通常涉及带外设置/授权机制,这样代理就不能被任意主机用来发起攻击。例如,在我的公司,我们有一个基于 Web 的管理框架,它集成了 noVNC,当用户想要连接到控制台时,一个经过身份验证的 AJAX 调用用于为该特定用户和他们想要连接的系统配置代理。我们的 Web 管理界面仅供内部使用。

Ganeti Web 管理器使用类似的模型并且源是可用的。他们有一个支持 WebSockets 的 VNCAuthProxy 分支。他们使用从 Web 界面到 VNCAuthProxy 的控制 channel 来设置与特定 VNC 服务器主机相关联的临时密码:端口。

此外,OpenStack (Nova) 还集成了 noVNC,它使用类似的基于带外 token 的模型来允许使用其 nova-vncproxy 进行访问。

一些链接:

关于ssl - noVNC 仅使用 HTTPS 连接到专用 LAN 上的 VNCServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703467/

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