See the websockify encryption page for how to use or troubleshoot encrypted WebSocket connections.
tightvnc provide a nice startup script that can be used to run
a separate X desktop that is served by VNC. To install and run the
server under Ubuntu you would do something like this:
sudo apt-get install tightvncserver vncserver :1
The VNC server will run in the background. The port that it runs on is the display number + 5900 (i.e. 5901 in the case above).
x11vnccan be used to share your current X desktop. Note that if you run noVNC on the X desktop you are connecting to via VNC you will get a neat hall of mirrors effect, but the the client and server will fight over the mouse.
sudo apt-get install x11vnc x11vnc -forever -display :0
-forever option, x11vnc will exit after the first
-display option indicates the exiting X display to
share. The port that it runs on is the display number + 5900 (i.e.
5900 in the case above).
./utils/websockify source_port target_addr:target_port ./utils/websockify 8787 localhost:5901
./utils/websockify --web ./ 8787 localhost:5901
Point your web browser at http://localhost:8787/vnc.html. On the page enter the location where the proxy is running (localhost and 8787) and the password that the vnc server is using (if any). Hit the Connect button.
If you are using python 2.3 or 2.4 and you want websockify to support 'wss://' (TLS) then see the websockify README for instructions on building the ssl module.