1<!-- 2 index.vnc - default HTML page for TightVNC Java viewer applet, to be 3 used with Xvnc. On any file ending in .vnc, the HTTP server embedded in 4 Xvnc will substitute the following variables when preceded by a dollar: 5 USER, DESKTOP, DISPLAY, APPLETWIDTH, APPLETHEIGHT, WIDTH, HEIGHT, PORT, 6 PARAMS. Use two dollar signs ($$) to get a dollar sign in the generated 7 HTML page. 8 9 NOTE: the $PARAMS variable is not supported by the standard VNC, so 10 make sure you have TightVNC on the server side, if you're using this 11 variable. 12--> 13 14<!-- 15The idea behind using the signed applet in SignedVncViewer.jar for 16firewall proxies: 17 18Java socket applets and http proxies do not get along well. 19 20Java security allows the applet to connect back via a socket to the 21originating host, but the browser/plugin Proxy settings are not used for 22socket connections (only http and the like). So the socket connection 23fails in the proxy environment. 24 25The applet is not allowed to open a socket connection to the proxy (since 26that would let it connect to just about any host, e.g. CONNECT method). 27 28This is indpendent of SSL but of course fails for that socket connection 29as well. I.e. this is a problem for non-SSL VNC Viewers as well. 30 31Solution? Sign the applet and have the user click on "Yes" that they 32fully trust the applet. Then the applet can connect to any host via 33sockets, in particular the proxy. It next issues the request 34 35 CONNECT host:port HTTP/1.1 36 Host: host:port 37 38and if the proxy supports the CONNECT method we are finally connected to 39the VNC server. 40 41For SSL connections, SSL is layered on top of this socket. However note 42this scheme will work for non-SSL applet proxy tunnelling as well. 43 44It should be able to get non-SSL VNC connections to work via GET 45command but that has not been done yet. 46 47Note that some proxies only allow CONNECT to only these the ports 443 48(HTTPS) and 563 (SNEWS). So you would have to run the VNC server on 49those ports. 50 51SignedVncViewer.jar is just a signed version of VncViewer.jar 52 53The URL to use for this file: https://host:port/proxy.vnc 54 55Note VNCSERVERPORT, we assume $PARAMS will have the correct PORT setting 56(e.g. 563), not the one libvncserver puts in.... 57 58--> 59 60 61<HTML> 62<TITLE> 63$USER's $DESKTOP desktop ($DISPLAY) 64</TITLE> 65<APPLET CODE=VncViewer.class ARCHIVE=SignedVncViewer.jar 66 WIDTH=$APPLETWIDTH HEIGHT=$APPLETHEIGHT> 67<param name=VNCSERVERPORT value=$PORT> 68<param name="Open New Window" value=yes> 69$PARAMS 70</APPLET> 71<BR> 72<A href="http://www.karlrunge.com/x11vnc">x11vnc site</A> 73</HTML> 74