I want to run a secure web server on my web site. This runs on port 443, which is the default port for the https protocol. I don't want to change this port number, because I want to be able to access it from work, and the proxy there will only allow https accesses to the default port number.
I also want to get ssh access to my server from work. Because of the firewall they have set up, the only way I can do this is by using ssh-http-tunnel to connect to an ssh server running on port 443.
That means that I want to run both an https server and an ssh server on the same port. Here is my solution. You just run this server on port 443 instead; it detects whether a client is trying to make an https or ssh connection, and connects the client to the appropriate server.
Actually, it's even better: I can run openvpn on the same port as well! Since openvpn knows how to tunnel through an https proxy, this gives me the choice of connecting via ssh or a VPN.
If you want a version for Windows, you can download the source from
here, or a pre-compiled executable
from here. If you want to use the pre-compiled
executable, you should also download the source code and read the
instructions supplied with it. It is a command-line program configured
by arguments, so just clicking on an icon will not work.
If you want to run this program as a Windows service, there is a utility
called SrvAny downloadable from the Microsoft web site which will
convert any Windows program into a service. I have not tried this.